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
'프로그래밍 기술 노트 > Functional Study' 카테고리의 다른 글
Lazy 한 시퀀스에서의 부수효과가 있는 함수 사용시 주의 (0) | 2020.01.03 |
---|---|
[Functional Study] 7. Pattern Matching & Destructuring (0) | 2019.12.25 |
[Functional Study] 5. Lazy (0) | 2019.12.25 |
[Functional Study] 1. Lambda, map, reduce, filter (0) | 2019.12.25 |
[F# Practice]한밤의 늑대인간 (0) | 2019.12.02 |