combinators.cleave: add general spread macro
parent
263476c3ea
commit
00333096e1
|
@ -30,3 +30,16 @@ IN: combinators.cleave
|
||||||
|
|
||||||
: tetra* ( obj obj obj obj quot quot quot quot -- val val val val )
|
: tetra* ( obj obj obj obj quot quot quot quot -- val val val val )
|
||||||
>r roll >r tri* r> r> call ; inline
|
>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 ;
|
||||||
|
|
Loading…
Reference in New Issue