From 486ce6bc819909ab99845763f207382fbe83c3c2 Mon Sep 17 00:00:00 2001 From: Calvin Rose Date: Sat, 22 Sep 2018 14:22:21 -0400 Subject: [PATCH] Update lazyseqs --- lib/lazyseqs.janet | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/lib/lazyseqs.janet b/lib/lazyseqs.janet index 7de444bd..1da1558d 100644 --- a/lib/lazyseqs.janet +++ b/lib/lazyseqs.janet @@ -49,19 +49,16 @@ [s] (get (s) TAIL)) -(defn range2 +(defn lazy-range "Return a sequence of integers [start, end)." - [start end] - (if (< start end) - (delay (tuple start (range2 (+ 1 start) end))) - empty-seq)) + @[start end] + (if end + (if (< start end) + (delay (tuple start (lazy-range (+ 1 start) end))) + empty-seq) + (lazy-range 0 start))) -(defn range - "Return a sequence of integers [0, end)." - [end] - (range2 0 end)) - -(defn map +(defn lazy-map "Return a sequence that is the result of applying f to each value in s." [f s] (delay @@ -95,7 +92,7 @@ (defn randseq "Return a sequence of random numbers." [] - (delay (tuple (random) (randseq)))) + (delay (tuple (math.random) (randseq)))) (defn take-while "Returns a sequence of values until the predicate is false."