Map Index Random Help Topics

## Topic: higher-order functions and combinators

topics > computer science > programming > Group: function

Topic:
curried functions
Topic:
functional programming
Topic:
reduction languages

#### Summary

Higher-order functions, combinators, functionals, and function modifiers take function calls as their arguments. They can rearrange the function and its arguments in any desired fashion. In this way it acts as a very powerful syntactic device. Backus's reduction language includes function modifiers. (cbb 5/80)
Subtopic: higer-order function and modularity

 Quote: use higher-order functions to glue together simple functions; e.g., vector sum as 'reduce add 0' and list concate as 'reduce cons b a' [»hughJ_1984]

Subtopic: combinators

 Quote: use combinators to find the value of a financial contract; compositional, abstract valuation semantics [»joneSP9_2000] Quote: function-producing functions; e.g., thrice(f)(x) = f(f(f(x)))) [»landPJ1_1964]

Subtopic: meta operators change semantics

 Quote: a meta operator can rearrange an operator/operands and perform the altered operation [»backJ_1972] Quote: meta operators provide almost any semantic ability without changing the simple syntax of Red languages [»backJ_1972] Quote: after metacomposition, the operator of a sequence has the original sequence and operands as its operand; can rearrange and reapply at will [»backJ8_1978a] Quote: in FQL, have a database of functions and a set of functionals that can operate on functions; e.g., extension and restriction [»buneP1_1981]

Subtopic: examples

 Quote: the apply_twice function modifier is polymorphic because it is independent of the operands type [»morrJH_1974] QuoteRef: backJ_1972 ;;6 <(f g h)> application is > this is regular composition QuoteRef: backJ_1972 ;;7 meta operators indicated by * composition is <(*f g h)> -> i.e. f now has as its operand the application QuoteRef: backJ_1972 ;;8 say -> (x x) and -> ( z) and ((w y) z) then fst= *(apply regrp) in <(fst dbl) (x y)> results in ((x x) y) i.e. modifies operator QuoteRef: backJ_1972 ;;9 <(repeat op) (n x)> -> <(op op op...op) x> QuoteRef: backJ_1972 ;;10 "The modifier fst is such that simply 'pairing it with op yields the desired operator, (fst op) ..." QuoteRef: backJ_1972 ;;52 <(adjoin x) y> = (x y) where adjoin= *(car rot) and = x and = ((y z) x) QuoteRef: wileDS11_1973 ;;27 x id:: x x rid v:: v identity and nullify operators QuoteRef: wileDS11_1973 ;;35 x alternate y:: gen*; == == QuoteRef: wileDS11_1973 ;;36 eg u rat v:: u conc (v gen*) == == == eg "3.7" rat "23" is "3.7232323..." sequence could terminate on precision requirements of Quote: (functor (F X)) = (functor F) (functor X) [»fostJM6_1977] Quote: APL has two function modifiers (reduction and cross product), but they can only combine with primitives [»backJ_1972]

Related Topics

Topic: curried functions (14 items)
Topic: functional programming (45 items)
Topic: reduction languages
(17 items)

Updated barberCB 6/04