him, Haskell, Brook and Curry, as well as the concept of currying, a technique used for transforming functions in mathematics and computer science. source: Haskell_Curry @ Wikipedia 5 / 21
function that takes multiple arguments (or a tuple of arguments) into evaluating a sequence of functions, each with a single argument. It was introduced by Gottlob Frege, developed by Moses Schönfinkel, and further developed by Haskell Curry." -- Wikipedia source: Currying - Wikipedia 6 / 21
multiple arguments into a function that takes just a single argument and returns another function if any arguments are still needed." -- Haskell Wiki source: Currying - Haskell Wiki 7 / 21
r i e d S u m A B = f u n c t i o n ( a ) { r e t u r n f u n c t i o n ( b ) { r e t u r n a + b ; } } c u r r i e d S u m A B ( 3 ) ( 4 ) ; / / 7 12 / 21
A B = ( a , b ) = > a + b ; s u m A B ( 1 , 2 ) ; / / 3 c o n s t c u r r i e d S u m A B = ( a ) = > ( b ) = > a + b ; c u r r i e d S u m A B ( 3 ) ( 4 ) ; / / 7 c u r r i e d S u m A B ( 1 ) ( 1 ) ; / / 2 13 / 21
r r i e d S u m A B = ( a ) = > ( ( b ) = > a + b ) ; c o n s t s u m 3 = c u r r i e d S u m A B ( 3 ) ; t y p e o f s u m 3 ; / / f u n c t i o n s u m 3 ; / / f u n c t i o n ( b ) { r e t u r n a + b ; } s u m 3 ( 4 ) ; / / 7 16 / 21
The curried function has two unusual capabilities. First, its arguments needn't be provided one at a time. If f is a ternary function and g is R.curry(f), the following are equivalent: g(1)(2)(3) g(1)(2, 3) g(1, 2)(3) g(1, 2, 3) 17 / 21
A B = ( a , b ) = > a + b ; c o n s t c u r r i e d S u m A B = c u r r y ( s u m A B ) ; c u r r i e d S u m A B ( 1 , 2 ) c u r r i e d S u m A B ( 3 , 4 ) c u r r i e d S u m A B ( 3 ) ( 4 ) 18 / 21