Scala/Функції
Зовнішній вигляд
< Scala
Функція, що приймає ціле x і повертає x+1
x: Int => x + 1
Функція, що повертає довжину рядка
val len: String => Int = s => s.length
Компілятор виводить тип змінної s у визначенні s => s.length виходячи із оголошення val len: String => Int. Також можливий вивід типу len із його визначення:
val len = (s: String) => s.length
Ім'я аргументу може бути за умовчанням _
val len: String => Int = _.length
Scala цілком обєктно-орієнтована мова, і ця функція еквівалента такому об'єкту
object len {
def apply(s: String): Int = s.length
}
Джерело
[ред.]- http://code.google.com/p/kinded-scala/
- Adriaan Moors, Frank Piessens, Martin Odersky: Generics of a Higher Kind