11. 커링 / 부분적용
• 함수형 프로그래밍에서 흔히 볼 수 있는 기법
• 커링이나 부분 적용은 함수나 메서드의 인수의 개수를 조작할 수
있게 해준다. 주로 인수 일부에 기본값을 주는 방법에 사용
• 그럼 커링과 부분 적용은 무엇일까?
12. 이것은 그 변형 과정이지 변형된 함수를 실행하는 것을 지칭하는 것은 아님.
함수의 호출자가 몇 개의 인수를 고정 할지를 결정하며
적은 수의 인자를 가지는 함수를 유도해 낸다.
커링
: 다인수함수를 일인수 함수들의 체인으로 바꿔주는 방법.
13. function tripleSum(a : number, b : number, c : number) : number {
return a + b + c;
}
function tripleSumCurried(a : number) : number => number => number {
return function (b : number) : number => number {
return function (c : number) : number {
return a + b + c;
}
}
}
커링
17. 모두 몇몇 인수의 값만 주면
인수가 몇 개 빠져도 호출할 수 있는 함수를
RETURN
다만, 커링은 체인의 다음 함수를 RETURN하는 반면에,
부분 적용은 주어진 값을 인수에 BINDING 시켜서
인수가 더 작은 하나의 함수를 만들어 준다.
이 차이점은 인수의 수가 둘 이상인 함수를 살펴보면 명확해진다.
커링이나 부분 적용
공통점
차이점
23. 객체지향 프로그래밍은 움직이는 부분을 캡슐화하여 코드 이해를 돕고,
함수형 프로그래밍은 움직이는 부분은 최소화하여 코드 이해를 돕는다.
24. 객체지향 프로그래밍은 움직이는 부분을 캡슐화하여 코드 이해를 돕고,
함수형 프로그래밍은 움직이는 부분은 최소화하여 코드 이해를 돕는다.
구조형 재사용 함수형 재사용
명령형 및 객체지향형 프로그래밍 스타일에서는
구조물과 메시징이 빌딩블록이다.
객체 지향 코드를 재사용하려면,
대상이 되는 코드를 다른 클래스로 옮기고
상속을 통해 접근해야 한다.
이것이 바로 커플링(coupling)
합성.
https://slidesplayer.org/slide/14110085/
25. 구조물을 사용한 코드 재사용
Source Source
Common Common
Common
Source Source