누군가 나를 currying의 개념을 설명해 주시겠습니까? 기능적 언어 소개를위한 '현대 프로그래밍 언어'클래스에서 ML을 배우기 때문에 주로 배우고 있습니다. 이 예제 사용할 수 있습니다 특히ML 기능 currying
:
-fun g a = fn b => a+b;
val g = fn: int -> int -> int
-g 2 3;
val it = 5 : int
을 나는 이러한 매개 변수가 전달되는 방법이나 심지어 처음에 그것에 대해 생각하는 방법에 대해 혼란 스러워요.
도움 주셔서 감사합니다.
완전 철자 아웃 버전은 다음과 같을 것이다 :'발 g = FN A => B => A + b' FN. 함수가 값이고,'fun' 키워드에 특별한 마법이 없다는 것을 보여주기 때문에 유용하다고 생각합니다. – waldrumpus
@waldrumpus : 사실,'fun'는'val'이 아니라'val rec'를위한 통 신당입니다. 그러나이 경우 중요하지 않습니다. :) –
'환경'(나는 SML/NJ를 사용하고 있습니다)이 fn b => a + b에 어떤 것이 있는지를 어떻게 알 수 있습니까? 그 시점에서 언 바운드 변수가 아닙니다. 어쩌면 혼란은 내가 읽는 방식 일 것이다. 왼쪽에서 오른쪽 또는 오른쪽에서 왼쪽으로 읽어야합니까? – Nick