Paste: ifte
Author: | dharmatech |
Mode: | factor |
Date: | Fri, 7 Nov 2008 13:31:13 |
Plain Text |
USING: kernel sequences macros accessors math fry locals
generalizations combinators.cleave stack-checker ;
IN: ifte
: [nkeep*]
>r { [ ] } swap suffix r> [ ncleave ] curry curry ;
MACRO: nkeep* [nkeep*] ;
: [predicating] [ ] [ infer out>> 1 - ] bi '[ @ _ nnip ] ;
: [keeping*] [ ] [ infer in>> ] bi '[ _ _ nkeep* ] ;
: [preserving] [predicating] [keeping*] ;
:: [ifte] TEST [preserving] '[ @ THEN ELSE if ] ;
MACRO: ifte [ifte] ;
Author: | dharmatech |
Mode: | factor |
Date: | Fri, 7 Nov 2008 13:59:29 |
Plain Text |
: [preserving] '[ dup drop @ ] [predicating] [keeping*] ;
New Annotation