lazy-lists: added llines for lazy lines from files
parent
00305bfd15
commit
3ea3b26ce0
|
@ -31,4 +31,34 @@ M: lazy-contents cdr ( lazy-contents -- cdr )
|
|||
] if ;
|
||||
|
||||
M: lazy-contents nil? ( lazy-contents -- bool )
|
||||
car not ;
|
||||
car not ;
|
||||
|
||||
TUPLE: lazy-lines stream car cdr ;
|
||||
|
||||
: llines ( stream -- result )
|
||||
f f <lazy-lines> ;
|
||||
|
||||
M: lazy-lines car ( lazy-lines -- car )
|
||||
dup lazy-lines-car dup [
|
||||
nip
|
||||
] [
|
||||
drop dup lazy-lines-stream stream-readln
|
||||
swap dupd set-lazy-lines-car
|
||||
] if ;
|
||||
|
||||
M: lazy-lines cdr ( lazy-lines -- cdr )
|
||||
dup lazy-lines-cdr dup [
|
||||
nip
|
||||
] [
|
||||
drop dup
|
||||
[ lazy-lines-stream ] keep
|
||||
car [
|
||||
llines [ swap set-lazy-lines-cdr ] keep
|
||||
] [
|
||||
2drop nil
|
||||
] if
|
||||
] if ;
|
||||
|
||||
M: lazy-lines nil? ( lazy-lines -- bool )
|
||||
car not ;
|
||||
|
||||
|
|
Loading…
Reference in New Issue