{ $description "Perform a similar functionality to that of the " { $link append } " word, but in a lazy manner. No evaluation of the list elements occurs initially but a " { $link <lazy-append> } " object is returned which conforms to the list protocol. Calling " { $link car } ", " { $link cdr } " or " { $link nil? } " on this will evaluate elements as required. Successive calls to " { $link cdr } " will iterate through list1, followed by list2." } ;
HELP: lfrom-by
-{ $values { "n" "an integer" } { "quot" { $quotation "( -- n )" } } { "lazy-from-by" "a lazy list of integers" } }
-{ $description "Return an infinite lazy list of values starting from n, with each successive value being the result of applying quot to n." } ;
+{ $values { "n" "an integer" } { "quot" { $quotation "( n -- o )" } } { "lazy-from-by" "a lazy list of integers" } }
+{ $description "Return an infinite lazy list of values starting from n, with each successive value being the result of applying quot to the previous value." } ;
HELP: lfrom
{ $values { "n" "an integer" } { "list" "a lazy list of integers" } }
3 { 1 2 3 } >list [ + ] with lazy-map list>array
] unit-test
+[ { 1 2 4 8 16 } ] [
+ 5 1 [ 2 * ] lfrom-by ltake list>array
+] unit-test
+
[ [ ] lmap ] must-infer
[ [ ] lmap>array ] must-infer
[ [ drop ] foldr ] must-infer