더북(TheBook)

마찬가지로 두 번째 파라미터 타입을 적는다.

fun <A, B, C, D> curried(): (A) -> (B) ->

모든 파라미터를 처리할 때까지 이를 반복한다.

fun <A, B, C, D> curried(): (A) -> (B) -> (C) -> (D) ->

마지막으로 curried()가 반환할 함수 값의 반환 타입을 지정하면 시그니처가 완성된다.

fun <A, B, C, D> curried(): (A) -> (B) -> (C) -> (D) -> String

구현을 위해서는 파라미터를 최대한 나열하면서 화살표와 여는 중괄호를 사용해 서로를 분리한다(파라미터 앞에 중괄호 시작을, 파라미터 뒤에 화살표를 넣는다). 그리고 모든 중괄호를 제대로 닫아준다.

fun <A,B,C,D> curried() =
    { a: A ->
        { b: B ->
            { c: C ->
                { d: D ->
                }
            }
        }
    }
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.