combinators.smart: Add smart combinator that outputs a seq and (length-n) more elements.
parent
8ef926989b
commit
33d96f7623
|
@ -123,3 +123,7 @@ IN: combinators.smart.tests
|
|||
{ [ + ] [ + ] }
|
||||
} smart-2map-reduce
|
||||
] unit-test
|
||||
|
||||
{ { 1 2 3 4 } 5 6 } [ [ 1 2 3 4 5 6 ] 2 output>array-n ] unit-test
|
||||
{ { } 5 6 } [ [ 5 6 ] 2 output>array-n ] unit-test
|
||||
{ { 1 2 } 3 4 5 6 } [ [ 1 2 3 4 5 6 ] 4 output>array-n ] unit-test
|
||||
|
|
|
@ -67,6 +67,13 @@ M: object infer-known* drop f ;
|
|||
: output>array ( quot -- array )
|
||||
{ } output>sequence ; inline
|
||||
|
||||
MACRO: output>sequence-n ( quot exemplar n -- quot )
|
||||
3dup nip [ outputs ] dip - -rot
|
||||
'[ @ [ _ _ nsequence ] _ ndip ] ;
|
||||
|
||||
MACRO: output>array-n ( quot n -- array )
|
||||
'[ _ { } _ output>sequence-n ] ;
|
||||
|
||||
: cleave>array ( obj quots -- array )
|
||||
'[ _ cleave ] output>array ; inline
|
||||
|
||||
|
|
Loading…
Reference in New Issue