2017-02-06 1 views

Antwort

2

In Scala parameterName => body eine anonyme Funktion ist, die einen Parameter parameterName und dessen Körper body benannt nimmt.

So ist a => b => f(a,b) eine Funktion mit dem Parameter a und dem Körper b => f(a,b), die sich mit dem Parameter b und dem Körper eine Funktion ist f(a,b). In diesem Körper sind a und b definiert, weil sie Parameter sind.

Wenn das macht es weniger verwirrend für Sie, können wir dies mit dem Namen Funktionen umschreiben statt:

def curry[A,B,C](f: (A, B) => C): A => (B => C) = { 
    def f1(a: A) = { 
    def f2(b: B) = f(a,b) 
    f2 
    } 
    f1 
} 
1

Es ist, weil

a => b => f(a, b) 

anonyme Funktion (Lambda) ist. a und b sind Variablen ohne Wert zu der Zeit. Sie dienen nur die Funktion zu konstruieren (beachten Sie, dass Funktion Rückgabetyp Curry ist eine andere Funktion)

Verwandte Themen