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 <f<g>> 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*; == <gen; gen; ...>==
QuoteRef: wileDS11_1973 ;;36 eg u rat v:: u conc (v gen*) == ==<u/gen; 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)
|