combinators.smart: add map-reduce-outputs
parent
dd57fe7a23
commit
13af3b4801
|
@ -45,3 +45,5 @@ IN: combinators.smart.tests
|
||||||
\ nested-smart-combo-test must-infer
|
\ nested-smart-combo-test must-infer
|
||||||
|
|
||||||
[ { { 1 2 } { 3 4 } } ] [ nested-smart-combo-test ] unit-test
|
[ { { 1 2 } { 3 4 } } ] [ nested-smart-combo-test ] unit-test
|
||||||
|
|
||||||
|
[ 14 ] [ [ 1 2 3 ] [ sq ] [ + ] map-reduce-outputs ] unit-test
|
|
@ -21,6 +21,12 @@ MACRO: reduce-outputs ( quot operation -- newquot )
|
||||||
: sum-outputs ( quot -- n )
|
: sum-outputs ( quot -- n )
|
||||||
[ + ] reduce-outputs ; inline
|
[ + ] reduce-outputs ; inline
|
||||||
|
|
||||||
|
MACRO: map-reduce-outputs ( quot mapper reducer -- newquot )
|
||||||
|
[ dup infer out>> ] 2dip
|
||||||
|
[ swap '[ _ _ napply ] ]
|
||||||
|
[ [ 1 [-] ] dip n*quot ] bi-curry* bi
|
||||||
|
'[ @ @ @ ] ;
|
||||||
|
|
||||||
MACRO: append-outputs-as ( quot exemplar -- newquot )
|
MACRO: append-outputs-as ( quot exemplar -- newquot )
|
||||||
[ dup infer out>> ] dip '[ @ _ _ nappend-as ] ;
|
[ dup infer out>> ] dip '[ @ _ _ nappend-as ] ;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue