Fixing bug in nil?

db4
James Cash 2008-06-05 14:31:15 -04:00
parent 520fc019cc
commit c901734689
1 changed files with 6 additions and 8 deletions

View File

@ -160,19 +160,17 @@ C: <lazy-filter> lazy-filter
over nil? [ 2drop nil ] [ <lazy-filter> <memoized-cons> ] if ;
: car-filter? ( lazy-filter -- ? )
[ cons>> car ] keep
quot>> call ;
[ 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 ;