combinators.cleave: add 2cleave and improve stack effect comments
parent
67562173a4
commit
a5551f8f56
|
@ -15,9 +15,9 @@ IN: combinators.cleave
|
|||
|
||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
: 2bi ( obj obj quot quot -- val val ) >r 2keep r> call ; inline
|
||||
: 2bi ( x y p q -- p(x,y) q(x,y) ) >r 2keep r> call ; inline
|
||||
|
||||
: 2tri ( obj obj quot quot quot -- val val val )
|
||||
: 2tri ( x y z p q r -- p(x,y,z) q(x,y,z) r(x,y,z) )
|
||||
>r >r 2keep r> 2keep r> call ; inline
|
||||
|
||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
@ -36,6 +36,18 @@ MACRO: cleave ( seq -- )
|
|||
[ drop ]
|
||||
append ;
|
||||
|
||||
MACRO: 2cleave ( seq -- )
|
||||
dup
|
||||
[ drop [ 2dup ] ] map concat
|
||||
swap
|
||||
dup
|
||||
[ drop [ >r >r ] ] map concat
|
||||
swap
|
||||
[ [ r> r> ] append ] map concat
|
||||
3append
|
||||
[ 2drop ]
|
||||
append ;
|
||||
|
||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
! The spread family
|
||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
|
Loading…
Reference in New Issue