]> gitweb.factorcode.org Git - factor.git/commitdiff
combinators: ricing call-effect
authorSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Mon, 1 Feb 2010 08:10:11 +0000 (21:10 +1300)
committerSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Wed, 3 Feb 2010 10:11:26 +0000 (23:11 +1300)
core/combinators/combinators.factor

index ddaa4eac0201f33eef75e15514705fe349e65a54..e8c2d18a429b0ae037c5d61849724d5d38178930 100644 (file)
@@ -24,14 +24,15 @@ SLOT: in
 SLOT: out
 
 : call-effect ( quot effect -- )
+    ! Don't use fancy combinators here, since this word always
+    ! runs unoptimized
     [ datastack ] 2dip
-    [
+    2dup [
         [ dip ] dip
-        [ in>> length ] [ out>> length ] bi
+        dup in>> length swap out>> length
         check-datastack
-    ]
-    [ [ wrong-values ] 2curry ] 2bi
-    unless ;
+    ] 2dip
+    [ 2drop ] [ wrong-values ] if ;
 
 : execute-effect ( word effect -- )
     [ [ execute ] curry ] dip call-effect ;