From c901734689c862653e31eb4b0849e6d082ab4da8 Mon Sep 17 00:00:00 2001 From: James Cash Date: Thu, 5 Jun 2008 14:31:15 -0400 Subject: [PATCH] Fixing bug in nil? --- extra/lists/lazy/lazy.factor | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/extra/lists/lazy/lazy.factor b/extra/lists/lazy/lazy.factor index 03e5b0f8cc..6beb6e402d 100644 --- a/extra/lists/lazy/lazy.factor +++ b/extra/lists/lazy/lazy.factor @@ -72,7 +72,7 @@ M: memoized-cons cdr ( memoized-cons -- cdr ) M: memoized-cons nil? ( memoized-cons -- bool ) dup nil?>> not-memoized? [ - dup original>> nil? [ >>nil? drop ] keep + dup original>> nil? [ >>nil? drop ] keep ] [ nil?>> ] if ; @@ -157,22 +157,20 @@ TUPLE: lazy-filter cons quot ; C: lazy-filter : lfilter ( list quot -- result ) - over nil? [ 2drop nil ] [ ] if ; + over nil? [ 2drop nil ] [ ] if ; -: car-filter? ( lazy-filter -- ? ) - [ cons>> car ] keep - quot>> call ; +: car-filter? ( lazy-filter -- ? ) + [ cons>> car ] [ quot>> ] bi call ; : skip ( lazy-filter -- ) - dup cons>> cdr >>cons ; + dup cons>> cdr >>cons drop ; M: lazy-filter car ( lazy-filter -- car ) dup car-filter? [ cons>> ] [ dup skip ] if car ; M: lazy-filter cdr ( lazy-filter -- cdr ) dup car-filter? [ - [ cons>> cdr ] keep - quot>> lfilter + [ cons>> cdr ] [ quot>> ] bi lfilter ] [ dup skip cdr ] if ;