finished up to 14_recursion
This commit is contained in:
parent
cc74c04aec
commit
c1e56f5c29
2 changed files with 22 additions and 14 deletions
|
|
@ -5,31 +5,31 @@
|
||||||
|
|
||||||
(meditations
|
(meditations
|
||||||
"One may know what they seek by knowing what they do not seek"
|
"One may know what they seek by knowing what they do not seek"
|
||||||
(= [__ __ __] (let [not-a-symbol? (complement symbol?)]
|
(= [true false true] (let [not-a-symbol? (complement symbol?)]
|
||||||
(map not-a-symbol? [:a 'b "c"])))
|
(map not-a-symbol? [:a 'b "c"])))
|
||||||
|
|
||||||
"Praise and 'complement' may help you separate the wheat from the chaff"
|
"Praise and 'complement' may help you separate the wheat from the chaff"
|
||||||
(= [:wheat "wheat" 'wheat]
|
(= [:wheat "wheat" 'wheat]
|
||||||
(let [not-nil? ___]
|
(let [not-nil? (complement nil?)]
|
||||||
(filter not-nil? [nil :wheat nil "wheat" nil 'wheat nil])))
|
(filter not-nil? [nil :wheat nil "wheat" nil 'wheat nil])))
|
||||||
|
|
||||||
"Partial functions allow procrastination"
|
"Partial functions allow procrastination"
|
||||||
(= 20 (let [multiply-by-5 (partial * 5)]
|
(= 20 (let [multiply-by-5 (partial * 5)]
|
||||||
(___ __)))
|
(multiply-by-5 4)))
|
||||||
|
|
||||||
"Don't forget: first things first"
|
"Don't forget: first things first"
|
||||||
(= [__ __ __ __]
|
(= [:a :b :c :d]
|
||||||
(let [ab-adder (partial concat [:a :b])]
|
(let [ab-adder (partial concat [:a :b])]
|
||||||
(ab-adder [__ __])))
|
(ab-adder [:c :d])))
|
||||||
|
|
||||||
"Functions can join forces as one 'composed' function"
|
"Functions can join forces as one 'composed' function"
|
||||||
(= 25 (let [inc-and-square (comp square inc)]
|
(= 25 (let [inc-and-square (comp square inc)]
|
||||||
(inc-and-square __)))
|
(inc-and-square 4)))
|
||||||
|
|
||||||
"Have a go on a double dec-er"
|
"Have a go on a double dec-er"
|
||||||
(= __ (let [double-dec (comp dec dec)]
|
(= 8 (let [double-dec (comp dec dec)]
|
||||||
(double-dec 10)))
|
(double-dec 10)))
|
||||||
|
|
||||||
"Be careful about the order in which you mix your functions"
|
"Be careful about the order in which you mix your functions"
|
||||||
(= 99 (let [square-and-dec ___]
|
(= 99 (let [square-and-dec (comp dec square)]
|
||||||
(square-and-dec 10))))
|
(square-and-dec 10))))
|
||||||
|
|
|
||||||
|
|
@ -3,21 +3,29 @@
|
||||||
|
|
||||||
(defn is-even? [n]
|
(defn is-even? [n]
|
||||||
(if (= n 0)
|
(if (= n 0)
|
||||||
__
|
true
|
||||||
(___ (is-even? (dec n)))))
|
(not (is-even? (dec n)))))
|
||||||
|
|
||||||
(defn is-even-bigint? [n]
|
(defn is-even-bigint? [n]
|
||||||
(loop [n n
|
(loop [n n
|
||||||
acc true]
|
acc true]
|
||||||
(if (= n 0)
|
(if (= n 0)
|
||||||
__
|
acc
|
||||||
(recur (dec n) (not acc)))))
|
(recur (dec n) (not acc)))))
|
||||||
|
|
||||||
(defn recursive-reverse [coll]
|
(defn recursive-reverse [coll]
|
||||||
__)
|
(loop [coll coll
|
||||||
|
acc '()]
|
||||||
|
(if (empty? coll)
|
||||||
|
acc
|
||||||
|
(recur (rest coll) (conj acc (first coll))))))
|
||||||
|
|
||||||
(defn factorial [n]
|
(defn factorial [n]
|
||||||
__)
|
(loop [n n
|
||||||
|
acc 1]
|
||||||
|
(if (= n 1)
|
||||||
|
acc
|
||||||
|
(recur (dec n) (* acc n)))))
|
||||||
|
|
||||||
(meditations
|
(meditations
|
||||||
"Recursion ends with a base case"
|
"Recursion ends with a base case"
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue