더북(TheBook)

3.1.7 부분 적용 함수 사용하기

덧셈 함수를 커리한 형태로 적는 것은 자연스러워 보이지 않고, 현실에서 커리한 함수에 대응하는 무언가를 써먹을 일이 있을지 궁금할 것이다. 커리한 함수를 사용하면 두 인자를 따로 분리해 적용할 수 있다. 두 인자 중 첫 번째 인자를 함수에 적용하면 새로운 함수를 얻는다. 이 새 함수는 그 자체로 유용한 것일까? 아니면 단지 전체 계산 과정의 한 단계에 불과한 것일까?

덧셈의 경우 커링이 그리 쓸모 있어 보이지 않는다. 그리고 덧셈에서는 두 인자 중 어느 쪽을 가지고 시작해도 결과가 똑같다. 중간에 만들어지는 함수는 달라지지만 최종 결과는 같다.

커링의 유용성을 이해하기 위해 세율을 적용한 최종 가격을 계산하는 계산기(또는 스마트폰)를 사용하면서 세율이 다른 여러 나라를 다니는 경우를 생각해 보자. 제품 가격에 거래세를 더한 금액을 계산하고 싶을 때마다 세율을 매번 입력하고 싶은가 아니면 세율은 메모리에 넣어 두고 간편하게 전체 금액을 알아내고 싶은가? 어떤 방법이 오류가 생길 가능성이 작을까? 한 쌍의 값을 인자로 받는 함수를 생각해 보자.

f(rate, price) = price / 100 * (100 + rate)

이 함수와 다음 함수는 같아 보인다.

g(price, rate) = price / 100 * (100 + rate)
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.