1
0
mirror of https://github.com/janet-lang/janet synced 2025-10-30 23:23:07 +00:00

Update lazyseqs

This commit is contained in:
Calvin Rose
2018-09-22 14:22:21 -04:00
parent 95b46cfc46
commit 486ce6bc81

View File

@@ -49,19 +49,16 @@
[s] [s]
(get (s) TAIL)) (get (s) TAIL))
(defn range2 (defn lazy-range
"Return a sequence of integers [start, end)." "Return a sequence of integers [start, end)."
[start end] @[start end]
(if end
(if (< start end) (if (< start end)
(delay (tuple start (range2 (+ 1 start) end))) (delay (tuple start (lazy-range (+ 1 start) end)))
empty-seq)) empty-seq)
(lazy-range 0 start)))
(defn range (defn lazy-map
"Return a sequence of integers [0, end)."
[end]
(range2 0 end))
(defn map
"Return a sequence that is the result of applying f to each value in s." "Return a sequence that is the result of applying f to each value in s."
[f s] [f s]
(delay (delay
@@ -95,7 +92,7 @@
(defn randseq (defn randseq
"Return a sequence of random numbers." "Return a sequence of random numbers."
[] []
(delay (tuple (random) (randseq)))) (delay (tuple (math.random) (randseq))))
(defn take-while (defn take-while
"Returns a sequence of values until the predicate is false." "Returns a sequence of values until the predicate is false."