본문으로 이동

커링

위키백과, 우리 모두의 백과사전.

수학과 컴퓨터 과학에서 커링(currying)이란 다중 인수 (혹은 여러 인수의 튜플)을 갖는 함수를 단일 인수를 갖는 함수들의 함수열로 바꾸는 것을 말한다. 모지즈 쇤핑클에 의해 도입되었고[1][2][3], 이후 해스켈 커리에 의해 발전하였다[4][5].

예를 들어, 세 개의 인수를 가지는 함수를 커링하면 다음과 같은 세 개의 함수가 만들어진다.

언커링(uncurrying)은 커링의 쌍대 변환이다.

같이 보기

[편집]

참고 문헌

[편집]
  1. Strachey, Christopher (2000). “Fundamental Concepts in Programming Languages”. 《Higher-Order and Symbolic Computation13: 11–49. doi:10.1023/A:1010000313106. There is a device originated by Schönfinkel, for reducing operators with several operands to the successive application of single operand operators.  (Reprinted lecture notes from 1967.)
  2. Reynolds, John C. (1998). “Definitional Interpreters for Higher-Order Programming Languages”. 《Higher-Order and Symbolic Computation11 (4): 374. doi:10.1023/A:1010027404223. In the last line we have used a trick called Currying (after the logician H. Curry) to solve the problem of introducing a binary operation into a language where all functions must accept a single argument. (The referee comments that although “Currying” is tastier, “Schönfinkeling” might be more accurate.) 
  3. Kenneth Slonneger and Barry L. Kurtz. Formal Syntax and Semantics of Programming Languages. p. 144.
  4. Henk Barendregt, Erik Barendsen, "Introduction to Lambda Calculus[깨진 링크(과거 내용 찾기)]", March 2000, page 8.
  5. Curry, Haskell; Feys, Robert (1958). 《Combinatory logic》 I 2판. Amsterdam, Netherlands: North-Holland Publishing Company.