본문 바로가기

프로그래밍 기술 노트/Functional Study

[Functional Study] 3. Currying

https://github.com/dream365/FP-Seminar/blob/master/Concept/3.%20Currying/Concept%20and%20Example.md

Functional Study 중 챕터3인 Currying을 간단하게 정리

챕터2, 5, 7의 경우 선배분이 정리하기로 해서 정리해서 올라가면 포스팅예정.

나 : (C++) / C# / F# / Clojure 의 예제코드를 담당하고

선배가 Java / Kotlin / Scala 의 예제 코드를 담당했는데

내가 담당한 언어에서 사실상 F# 만 진짜 커링이라... 예제코드는 비슷하게 동작하는 closure 로 구현하였음.

 

Currying

하나 이상의 파라미터를 받는 함수에서 몇몇 파라미터를 미리 지정하여 새로운 함수로써 사용하는것.
(본 설명에서는 Currying 과 Partial function 에 차이를 두지않음.) Currying 이 언어적 차원에서 적용되는경우 fun(1,2,3) 은 fun(1)(2)(3) 처럼 처리된다.

장점

중간함수를 작성할 필요가 없어서 편하다.
함수의 지연실행이 가능 함수합성에서 파라미터를 하나만 받는 함수꼴로 변경

단점

솔직히 아직 장점이 체감이 안된다.

728x90