커링함수

    [Kotlin] 커링(Currying) 함수

    여러 개의 매개 변수를 받는 함수를 분리하여, 단일 매개 변수만 받는 부분 적용 함수의 체인으로 만드는 방법이다. 함수형 프로그래밍에서 커링을 사용하는 이유는 다양한 재사용과 마지막 매개변수가 입력될 때까지 함수의 실행 타이밍을 조절할 수 있다. 아래 코드는 코틀린의 확장함수를 사용하여 multiThree 함수와 같이 매개변수가 3개인 커링 함수를 일반화 하는 과정이다. curried() 확장 함수를 사용하여 매개변수가 3개인 함수를 커링 함수로 변환할 수 있다. 반대로 커링 함수를 일반 함수로 변환하는 unCurried() 함수도 구현했다. class Currying { fun ((P1, P2, P3) -> R).curried(): (P1) -> (P2) -> (P3) -> R = { p1: P1 ->..