Was ist ein infix Methodenaufruf?
val people: Array[Person] people partition (_.age < 18)
Was bedeutet Immutability in Functional Style?
Was bedeutet Funktionen sind Objekte in Functional Style?
def fun(p: (A) => Boolean)Was bedeutet Expressions statt Statements in Functional Style?
val a: array.map().filter()for (i in array) {...}Wie lässt sich numbers.foreach((x: Int) => print(x)) vereinfachen?
numbers foreach print
Was ist eine Higher Order Funktion?
def f(x: Int) = x + 1numbers.foreach(x => f(x)) wird zu numbers foreach fBeispiel Verkettung von Higher Order Funktionen
List(-10, -5, 0, 5, 10) .filter(_ > 0) .map(x => x * x) .sortWith(_ > _) .foreach(println)
Resultat: 100, 25
Beispiel für Imperative Style VS Functional Style
Functional (übersichtlicher): (1 to 1000000).foldLeft(0)(_ + _)
Imperative (performanter): var x = 1 var sum = 0 while (x <= 1000000) { sum += x x += 1 }
Was macht Imperative Style aus?
Was macht Functional Style aus?
Was ist ein Closure?
Anonyme Funktion: val multiplier = (i:Int) => i * 10
Closure Funktion:
var factor = 3 val multiplier = (i:Int) => i * factor
Was ist Currying?
Umwandlung von Funktion mit mehreren Argumenten in Funktionssequenz mit jeweils einem Argument
def f3(c: Int) = (x: Int) => x + c
f3(1)(5) ==> 6
Was ist eine Partially Applied Function?
Eine Curried (Currying) Funktion der nicht die volle Parameter Sequenz übergeben wurde. Und dessen Ergebnisfunktion wir erneut verwenden.
def f4 = f3(10)
f4(5) ==> 15