Currying

So, wie Sie partiell angewandte Funktionen gesehen haben, bevor wir sie definierten, sind Ihnen auch curried Funktionen begegnet. Benannt nach dem Mathematiker Haskell Curry (von dem auch die Sprache Haskell ihren Namen hat), ist Currying eine Transformation, die eine Funktion mit mehreren Parametern in eine Kette von Funktionen mit jeweils einem einzigen Parameter verwandelt.

In Scala werden curried Funktionen mittels mehrerer Parameterlisten definiert, wie in diesem Beispiel:

def cat(s1: String)(s2: String) = s1 + s2

Natürlich können wir, wenn wir wollen, auch mehr als zwei Parameter für eine curried Funktion definieren.

Eine curried Funktion kann auch mit folgender Syntax definiert werden:

def cat(s1: String) = (s2: String) => s1 + s2 ...

Get Programmieren mit Scala now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.