]> gitweb.factorcode.org Git - factor.git/blob - extra/ui/frp/functors/functors.factor
modulization of ui.frp
[factor.git] / extra / ui / frp / functors / functors.factor
1 USING: fry functors generalizations kernel macros peg peg-lexer
2 sequences ;
3 IN: ui.frp.functors
4
5 FUNCTOR: fmaps ( W P -- )
6 W        IS ${W}
7 <p>      IS <${P}>
8 w-n      DEFINES ${W}-n-${P}
9 w-2      DEFINES 2${W}-${P}
10 w-3      DEFINES 3${W}-${P}
11 w-4      DEFINES 4${W}-${P}
12 WHERE
13 MACRO: w-n ( int -- quot ) dup '[ [ _ narray <p> ] dip [ _ firstn ] prepend W ] ;
14 : w-2 ( a b quot -- mapped ) 2 w-n ; inline
15 : w-3 ( a b c quot -- mapped ) 3 w-n ; inline
16 : w-4 ( a b c d quot -- mapped ) 4 w-n ; inline
17 ;FUNCTOR
18
19 ON-BNF: FMAPS:
20 tokenizer = <foreign factor>
21 token = !("FOR"|";").
22 middle = "FOR" => [[ drop ignore ]]
23 endexpr = ";" => [[ drop ignore ]]
24 expr = token* middle token* endexpr => [[ first2 combos [ first2 fmaps ] each ignore ]]
25 ;ON-BNF