有没有办法在scala中进行函数分解的模式匹配?

时间:2017-02-22 06:05:27

标签: scala

我真的想知道如何在scala中进行函数分解的模式匹配,如下所示。

def map(list:List[Int],f:Int=>Int):List[Int]= list match {
 case x::xs => f(x)::map(xs,f)}

有这样的形式吗? f是函数Int => Int

f match {
  case (x=>x) => (2*x=>x)
}

我的目标是在模式匹配中分解函数。

1 个答案:

答案 0 :(得分:0)

根据我对您的问题的理解,您将询问如何在函数上定义映射操作。

根本没有必要进行模式匹配,正如@Alec所说,不可能在函数上定义一个相等的概念。

但从数学角度来看,您可能会注意到在函数 f 上对函数 g 应用地图正好是 f(g(x)) 。所以根据Scala Documentation

def map(f: Int => Boolean, g: Int => Int): Int => Boolean = f.compose(g)