더북(TheBook)

3.1.6 커리한 함수

튜플을 인자로 받는 함수를 다른 방식으로 생각할 수도 있다. f(3, 5)N을 정의역으로 하고 N 상에 정의된 함수를 공역으로 하는 함수라고 생각할 수 있다. 따라서 앞에서 본 예제를 다음과 같이 다시 쓸 수 있다.

f(x)(y) = x + y

이런 경우 다음과 같이 쓸 수 있다.

f(x) = g

이 식은 f에 인자 x를 적용한 결과가 새로운 함수 g라는 뜻이다. 이제 gy를 적용하면 다음과 같은 결과를 얻는다.

g(y) = x + y

g를 적용할 때 x는 더 이상 변수가 아니고 상수(constant)다. x의 값은 g에 전달되는 인자나 다른 외부 환경에 따라 결정되지 않는다. 이 과정을 (3, 5)에 대해 적용하면 다음과 같은 결과를 얻는다.

f(3)(5) = g(5) = 3 + 5 = 8

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.