combinators.cleave: add general spread macro

db4
Eduardo Cavazos 2008-02-23 14:22:04 -06:00
parent 263476c3ea
commit 00333096e1
1 changed files with 13 additions and 0 deletions

View File

@ -30,3 +30,16 @@ IN: combinators.cleave
: tetra* ( obj obj obj obj quot quot quot quot -- val val val val )
>r roll >r tri* r> r> call ; inline
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! General spread
USING: sequences macros ;
MACRO: spread ( seq -- )
dup
[ drop [ >r ] ] map concat
swap
[ [ r> ] swap append ] map concat
append ;