Home » 함자

함자

Swift :: 1.2의 커리드함수와 함수 합성에 대해

커링

Swift 1.2부터는 커리드 함수를 만들 때 파라미터 이름을 생략할 수 있게 되었다.1 함수를 커리드함수로 정의할 때

func f(a:Int)(b:Int)(c:Int) -> Int {
    return a * 2 + b * 3 + c * 5
}
let a = f(1)
let b = a(b:2)
let c = b(c:3)

이런식으로 커리드된 함수에서는 파라미터 이름을 반드시 넣어야 했는데, 이렇게 부분적용함수의 나머지 인자에 대해 반드시 이름을 쓰는 것만 허용이 됐었다. 이 경우에는 부분적용함수를 실제로 호출하는 경우, 반드시 해당 파라미터 이름을 기술해야하므로, 원 함수의 시그니쳐를 알지못하면 쓰기가 어렵기 때문에 활용할만한 곳이 많이 않았다. 하지만 Swift 1.2에서부터 이런 제한이 없어지고, 아래와 같이 2차 이후 부터의 인자 외부 이름을 생략하는 것이 허용됐다.더 보기 »Swift :: 1.2의 커리드함수와 함수 합성에 대해