26 lines
666 B
Clojure
26 lines
666 B
Clojure
|
(meditations
|
||
|
"There are a wide range of ways to generate a sequence"
|
||
|
(= __ (range 1 5))
|
||
|
|
||
|
"The range starts at the beginning by default"
|
||
|
(= __ (range 5))
|
||
|
|
||
|
"It's important to only take what you need from a big sequence"
|
||
|
(= [0 1 2 3 4 5 6 7 8 9]
|
||
|
(take __ (range 100)))
|
||
|
|
||
|
"You can also limit results by dropping what you don't need"
|
||
|
(= [95 96 97 98 99]
|
||
|
(drop __ (range 100)))
|
||
|
|
||
|
"Iteration provides an infinite lazy sequence"
|
||
|
(= __ (take 20 (iterate inc 0)))
|
||
|
|
||
|
"Repetition is key"
|
||
|
(= [:a :a :a :a :a :a :a :a :a :a ]
|
||
|
(repeat 10 __))
|
||
|
|
||
|
"Iteration can be used for repetition"
|
||
|
(= (repeat 100 :foo)
|
||
|
(take 100 (iterate ___ :foo))))
|