我真的想知道如何在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)
}
我的目标是在模式匹配中分解函数。
答案 0 :(得分:0)
根据我对您的问题的理解,您将询问如何在函数上定义映射操作。
根本没有必要进行模式匹配,正如@Alec所说,不可能在函数上定义一个相等的概念。
但从数学角度来看,您可能会注意到在函数 f 上对函数 g 应用地图正好是 f(g(x)) 。所以根据Scala Documentation:
def map(f: Int => Boolean, g: Int => Int): Int => Boolean = f.compose(g)