]> gitweb.factorcode.org Git - factor.git/commitdiff
combinators.smart: add nullary combinator and some tests
authorSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Mon, 9 Nov 2009 06:53:58 +0000 (00:53 -0600)
committerSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Mon, 9 Nov 2009 06:53:58 +0000 (00:53 -0600)
basis/combinators/smart/smart-tests.factor
basis/combinators/smart/smart.factor

index 399b4dc36fe35feaf226288c2944ea555094265c..bd224919f9e00c524e2a59f355f6797df286fde9 100644 (file)
@@ -47,3 +47,9 @@ IN: combinators.smart.tests
 [ { { 1 2 } { 3 4 } } ] [ nested-smart-combo-test ] unit-test
 
 [ 14 ] [ [ 1 2 3 ] [ sq ] [ + ] map-reduce-outputs ] unit-test
+
+{ 2 3 } [ [ + ] preserving ] must-infer-as
+
+{ 2 0 } [ [ + ] nullary ] must-infer-as
+
+{ 2 2 } [ [ [ + ] nullary ] preserving ] must-infer-as
index a00967742f716a28c58afbb54b2fd49edc95c614..91987e0dfa6577f05a1d3b492ab56a6279ce33dd 100644 (file)
@@ -46,5 +46,8 @@ MACRO: append-outputs ( quot -- seq )
 MACRO: preserving ( quot -- )
     [ infer in>> length ] keep '[ _ ndup @ ] ;
 
+MACRO: nullary ( quot -- quot' )
+    dup infer out>> length '[ @ _ ndrop ] ;
+
 MACRO: smart-if ( pred true false -- )
     '[ _ preserving _ _ if ] ; inline