마찬가지로 두 번째 파라미터 타입을 적는다.
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 -> } } } }