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 ; over nil? [ 2drop nil ] [ <lazy-filter> <memoized-cons> ] if ;
: car-filter? ( lazy-filter -- ? ) : car-filter? ( lazy-filter -- ? )
[ cons>> car ] keep [ cons>> car ] [ quot>> ] bi call ;
quot>> call ;
: skip ( lazy-filter -- ) : skip ( lazy-filter -- )
dup cons>> cdr >>cons ; dup cons>> cdr >>cons drop ;
M: lazy-filter car ( lazy-filter -- car ) M: lazy-filter car ( lazy-filter -- car )
dup car-filter? [ cons>> ] [ dup skip ] if car ; dup car-filter? [ cons>> ] [ dup skip ] if car ;
M: lazy-filter cdr ( lazy-filter -- cdr ) M: lazy-filter cdr ( lazy-filter -- cdr )
dup car-filter? [ dup car-filter? [
[ cons>> cdr ] keep [ cons>> cdr ] [ quot>> ] bi lfilter
quot>> lfilter
] [ ] [
dup skip cdr dup skip cdr
] if ; ] if ;