Пусть у вас есть список
scala> val x =List.range(10,20)
x: List[Int] = List(10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
Определить метод
scala> def m1(i:Int)=i+2
m1: (i: Int)Int
Определить функцию
scala> (i:Int)=>i+2
res0: Int => Int =
scala> x.map((x)=>x+2)
res2: List[Int] = List(12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
Метод принятия аргумента
scala> m1(2)
res3: Int = 4
Определение функции с val
scala> val p =(i:Int)=>i+2
p: Int => Int =
Аргумент функции необязателен
scala> p(2)
res4: Int = 4
scala> p
res5: Int => Int =
Аргумент метода обязателен
scala> m1
:9: error: missing arguments for method m1;
follow this method with `_' if you want to treat it as a partially applied function
Проверьте следующее Учебное пособие , в котором объясняется передача других различий примерами, например, другим примером diff с функцией Vs Function, использованием функции в качестве переменных, созданием функции, возвращающей функцию