diff --git a/basis/lists/lazy/lazy-docs.factor b/basis/lists/lazy/lazy-docs.factor index 201764bd95..d3827dd85d 100644 --- a/basis/lists/lazy/lazy-docs.factor +++ b/basis/lists/lazy/lazy-docs.factor @@ -108,8 +108,8 @@ HELP: lappend { $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 } " 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" } } diff --git a/basis/lists/lazy/lazy-tests.factor b/basis/lists/lazy/lazy-tests.factor index 39f92158a6..55d29ddb94 100644 --- a/basis/lists/lazy/lazy-tests.factor +++ b/basis/lists/lazy/lazy-tests.factor @@ -28,6 +28,10 @@ IN: lists.lazy.tests 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 diff --git a/basis/lists/lazy/lazy.factor b/basis/lists/lazy/lazy.factor index b430df4e81..be7b0cf54f 100644 --- a/basis/lists/lazy/lazy.factor +++ b/basis/lists/lazy/lazy.factor @@ -189,7 +189,7 @@ M: lazy-append nil? ( lazy-append -- ? ) TUPLE: lazy-from-by n quot ; -C: lfrom-by lazy-from-by +: lfrom-by ( n quot: ( n -- o ) -- lazy-from-by ) lazy-from-by boa ; inline : lfrom ( n -- list ) [ 1 + ] lfrom-by ;