Я больше узнаю о Scala, и я немного затрудняюсь понять пример анонимных функций в http://www.scala-lang.org/node/135. Я скопировал весь блок кода ниже:
object CurryTest extends Application {
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)))
println(filter(nums, modN(3)))
}
Я запутался с применением функции modN
def modN(n: Int)(x: Int) = ((x % n) == 0)
В этом примере он вызывается с одним аргументом
modN(2) and modN(3)
Что означает синтаксис modN (n: Int) (x: Int)?
Поскольку он вызывает один аргумент, я предполагаю, что это не оба аргумента, но я не могу понять, как значения из nums используются функцией mod.