스칼라에서 두 매개 변수 목록을 사용하여 함수를 정의 할 수 있습니다.중첩 된 함수 또는 다중 매개 변수 목록으로 스칼라 currying
def myAdd(x :Int)(y :Int) = x + y
이렇게하면 부분 적용 기능을 쉽게 정의 할 수 있습니다.
val plusFive = myAdd(5) _
그러나 중첩 된 함수를 정의하고 반환하여 비슷한 결과를 얻을 수 있습니다.
def myOtherAdd(x :Int) = {
def f(y :Int) = x + y
f _
}
외면적으로 나는 밑줄을 옮겼지만, 여전히 카레 시도처럼 느껴집니다.
val otherPlusFive = myOtherAdd(5)
한 접근법을 다른 기준보다 선호하려면 어떤 기준을 사용해야합니까?
감사합니다, 다니엘. 여러 매개 변수 목록에 대한 동기로서 형식 유추에 대한 귀하의 의견은 눈을 뜨게합니다. 이것은 정말로 도움이되었습니다. –
또 다른 동기는 'using (x) {...}'과 같이 언어에 잘 통합 된 DSL을 작성하는 것입니다. 이것은 물론, 여러 블록에 제공되는 유 형 추론을 사용합니다. –