| Topic:
 formal methods and languages
 Topic:evaluation in an environment
 Topic:
 function call
 ýƒYòçýTopic:
 functional programming
 Topic:
 inheritance by delegation
 Topic:
 lambda calculus
 Topic:
 no need for variables
 Topic:
 object slice
 
 |  | Summary
   To curry a function means to produce a function with fewer parameters.  For instance the expression '2+3' is the same as the curried function '+2' applied to 3.  Note the '+2' does not modify 3.  Instead it uses 3 as an argument.  '+2' is the curried function '+' applied to 2.  Curried functions are also called slices or partial instantiation.  A similar idea is combinators which can remove variables. (cbb 5/80 12/92)Subtopic: closures
   Subtopic: comprehension
| Quote: anonymous inner classes implement closures; e.g., makeAdder(n) [»bensBW2_1999] |  | Quote: a typed assembly language enforces closures, tuples, and abstract data types without restricting low-level optimizations such as register allocation |  | Quote: a closure is a rule for evaluating the expression and an environment; it is an R-value that is not atomic [»straC8_1967] | 
   Subtopic: curry operator
| Quote: the ext combinator is a universal construct for comprehensions and NRC; restricted form of structural recursion [»wongL9_2000] | 
   Subtopic: section of a function
| Quote: for currying, prefer the eval/apply model over push/enter; similar performance with simpler optimization and runtime; push/enter more elegant [»marlS9_2004] |  | Quote: the push/enter model of the curry operator queries the stack for insufficient arguments; if so, it returns a curried function; otherwise returns a regular function [»marlS9_2004] |  | Quote: the eval/apply model of the curry operator evaluates the function and then applies it; if there are insuffient arguments, it returns the closure [»marlS9_2004] |  | QuoteRef: bekiH_1971 ;;156 let add x = lambda y. x+y then (add 3) 4 is 7 (not algol 68) |  | QuoteRef: stoyJ_1977 ;;45 the curry of add (3,4) id add' such that add'(3)==add3 and add3(4) is curry: ((n X n) ->n) ->(n-> (n-> n)) is all functions of one variable |  | QuoteRef: stoyJ_1977 ;;46 curry function in lambda notation is curry (f)=2x.xy.f(x,y) the procedure parameter f must exist after the function is invoked |  | Quote: using combinators, can remove bound variables from an expression; the result is a kind of object code ready for execution [»turnDA1_1979] |  | Quote: partially instantiate an operator by specifying some of its operands [»wileDS11_1973] | 
   
| QuoteRef: wileDS11_1973 ;;15 a 'section' is a partially instantiated function eg a(,j) |  | QuoteRef: earlJ4_1974 ;;35 access a column by a(*,3) producing a function with one less argument 
 | 
 
 Related Topics   Topic: formal methods and languages (53 items)
Topic: evaluation in an environment (35 items)
Topic: function call (28 items)
 ýƒYòçýTopic: functional programming (19 items)
 Topic: inheritance by delegation (8 items)
 Topic: lambda calculus (16 items)
 Topic: no need for variables (13 items)
 Topic: object slice
 (3 items)
 |