Scala currying与部分应用函数
我意识到这里有几个关于什么是currying和部分应用的函数的问题,但是我在问它们有什么不同。作为一个简单的示例,这是一个用于查找偶数的咖喱函数: def filter(xs: List[Int], p: Int => Boolean): List[Int] = if (xs.isEmpty) xs else if (p(xs.head)) xs.head :: filter(xs.tail, p) else filter(xs.tail, p) def modN(n: Int)(x: Int) = ((x % n) == 0) 因此,您可以编写以下代码来使用它: val nums = List(1,2,3,4,5,6,7,8) println(filter(nums, modN(2)) 返回:List(2,4,6,8)。但是我发现我可以这样做: def modN(n: Int, x: Int) = ((x % n) …