From 2879299999504cda7d1fa6d1b151299e2de53689 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Mon, 1 Feb 2010 21:10:11 +1300 Subject: [PATCH] combinators: ricing call-effect --- core/combinators/combinators.factor | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/core/combinators/combinators.factor b/core/combinators/combinators.factor index ddaa4eac02..e8c2d18a42 100644 --- a/core/combinators/combinators.factor +++ b/core/combinators/combinators.factor @@ -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 ;