Das Problem ist nicht neu in stackoverflow, aber ich bin nicht in der Lage, das Verhalten der let
Bindung mit Mustern und der in
Schlüsselwort zu verstehen. Mein textbook zieht das seltene Funktion Definition-Format:F # lassen Bindungsmuster
let foo = fun x -> let f = (fun x y -> x +y) in f x
Damit ich in #light Syntax übersetzt:
let foo x =
let f y =
x + y
f x
Wenn ich foo 4
gesetzt es gibt mir 8
. Warum? Ich kann nicht verstehen, was tatsächlich in der Funktion passiert, sogar mit den eleganten Erklärungen von here. Warum 4
wird Argument für beide x
und y
?