Merge pull request #11 from HantonSacu/HantonSacu-11

Solve lazy sequences
This commit is contained in:
Kenneth Kostrešević 2021-12-16 16:20:34 +01:00 committed by GitHub
commit 4e02235f68
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -3,26 +3,26 @@
(meditations
"There are many ways to generate a sequence"
(= __ (range 1 5))
(= [1 2 3 4] (range 1 5))
"The range starts at the beginning by default"
(= __ (range 5))
(= [0 1 2 3 4] (range 5))
"Only take what you need when the sequence is large"
(= [0 1 2 3 4 5 6 7 8 9]
(take __ (range 100)))
(take 10 (range 100)))
"Or limit results by dropping what you don't need"
(= [95 96 97 98 99]
(drop __ (range 100)))
(drop 95 (range 100)))
"Iteration provides an infinite lazy sequence"
(= __ (take 8 (iterate (fn [x] (* x 2)) 1)))
(= '(1 2 4 8 16 32 64 128) (take 8 (iterate (fn [x] (* x 2)) 1)))
"Repetition is key"
(= [:a :a :a :a :a :a :a :a :a :a]
(repeat 10 __))
(repeat 10 :a))
"Iteration can be used for repetition"
(= (repeat 100 "hello")
(take 100 (iterate ___ "hello"))))
(take 100 (iterate identity "hello"))))