interleave: allow the 'between' quot to access the stack
parent
29327a787c
commit
92b436d7fb
|
@ -112,8 +112,7 @@ M: gadget gadget-text-separator
|
|||
orientation>> vertical = "\n" "" ? ;
|
||||
|
||||
: gadget-seq-text ( seq gadget -- )
|
||||
gadget-text-separator swap
|
||||
[ dup % ] [ gadget-text* ] interleave drop ;
|
||||
gadget-text-separator '[ _ % ] [ gadget-text* ] interleave ;
|
||||
|
||||
M: gadget gadget-text*
|
||||
[ children>> ] keep gadget-seq-text ;
|
||||
|
|
|
@ -286,3 +286,8 @@ M: bogus-hashcode hashcode* 2drop 0 >bignum ;
|
|||
[ f f ] [
|
||||
{ 1 2 3 4 5 6 7 8 } [ H{ { 11 "hi" } } at ] map-find
|
||||
] unit-test
|
||||
|
||||
USE: make
|
||||
|
||||
[ { "a" 1 "b" 1 "c" } ]
|
||||
[ 1 { "a" "b" "c" } [ [ dup , ] [ , ] interleave drop ] { } make ] unit-test
|
|
@ -406,6 +406,9 @@ PRIVATE>
|
|||
[ 2drop f f ]
|
||||
if ; inline
|
||||
|
||||
: interleave-step ( elt between quot -- )
|
||||
[ dip ] dip call ; inline
|
||||
|
||||
PRIVATE>
|
||||
|
||||
: each ( seq quot -- )
|
||||
|
@ -510,7 +513,7 @@ PRIVATE>
|
|||
: interleave ( seq between quot -- )
|
||||
pick empty? [ 3drop ] [
|
||||
[ [ drop first-unsafe ] dip call ]
|
||||
[ [ rest-slice ] 2dip [ [ call ] bi@ ] 2curry each ]
|
||||
[ [ rest-slice ] 2dip [ interleave-step ] 2curry each ]
|
||||
3bi
|
||||
] if ; inline
|
||||
|
||||
|
|
Loading…
Reference in New Issue