From 2bfde77127301e6e06d4f61841c684c1cd8e205c Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Mon, 19 Dec 2011 11:12:37 -0800 Subject: [PATCH] combinators.smart: Make map-reduce-outputs a macro. To be a combinator, we need a full stack-checker rewrite. --- basis/combinators/smart/smart-tests.factor | 2 +- basis/combinators/smart/smart.factor | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/basis/combinators/smart/smart-tests.factor b/basis/combinators/smart/smart-tests.factor index 0a28c0ea83..36a1bd03d1 100644 --- a/basis/combinators/smart/smart-tests.factor +++ b/basis/combinators/smart/smart-tests.factor @@ -81,7 +81,7 @@ IN: combinators.smart.tests :: map-reduce-test ( a b c -- d ) [ a b c ] [ a - ] [ b * + ] map-reduce-outputs ; -[ ] [ 1 2 3 map-reduce-test ] unit-test +[ 10 ] [ 1 2 3 map-reduce-test ] unit-test [ ( x x -- x ) ] [ [ curry inputs ] infer ] unit-test diff --git a/basis/combinators/smart/smart.factor b/basis/combinators/smart/smart.factor index bf88b2e6b2..da60bf984f 100644 --- a/basis/combinators/smart/smart.factor +++ b/basis/combinators/smart/smart.factor @@ -81,8 +81,8 @@ M: object infer-known* drop f ; : map-outputs ( quot mapper -- ) [ drop call ] [ swap outputs ] 2bi napply ; inline -: map-reduce-outputs ( quot mapper reducer -- ) - [ '[ _ _ map-outputs ] ] dip reduce-outputs ; inline +MACRO: map-reduce-outputs ( quot mapper reducer -- quot ) + [ '[ _ _ map-outputs ] ] dip '[ _ _ reduce-outputs ] ; : append-outputs-as ( quot exemplar -- seq ) [ [ call ] [ outputs ] bi ] dip nappend-as ; inline