Finished koan 14

This commit is contained in:
Matt Davidson 2022-11-08 23:37:41 +00:00
parent 0d83f43cfd
commit 37bf3d22bf
4 changed files with 15 additions and 18 deletions

File diff suppressed because one or more lines are too long

View file

@ -29,8 +29,7 @@
(= 9 (((fn [] +)) 4 5)) (= 9 (((fn [] +)) 4 5))
"Functions can also take other functions as input" "Functions can also take other functions as input"
(= 20 ((fn [f] (f 4 5)) (= 20 ((fn [f] (f 4 5)) *))
*))
"Higher-order functions take function arguments" "Higher-order functions take function arguments"
(= 25 ((fn [f] (f 5)) (fn [n] (* n n)))) (= 25 ((fn [f] (f 5)) (fn [n] (* n n))))

View file

@ -2,22 +2,20 @@
(:require [koan-engine.core :refer :all])) (:require [koan-engine.core :refer :all]))
(defn is-even? [n] (defn is-even? [n]
(if (= n 0) (if (= n 0) true (not (is-even? (dec n)))))
__
(___ (is-even? (dec n)))))
(defn is-even-bigint? [n] (defn is-even-bigint? [n] (loop [n n acc true]
(loop [n n (if (= n 0) acc (recur (dec n) (not acc)))))
acc true]
(if (= n 0)
__
(recur (dec n) (not acc)))))
(defn recursive-reverse [coll] (defn recursive-reverse [coll]
__) (loop [coll coll newlist ()]
(if (seq coll)
(recur (rest coll) (conj newlist (first coll)))
newlist)))
(defn factorial [n] (defn factorial [n]
__) (loop [n n acc 1]
(if (= n 0) acc (recur (dec n) (* n acc)))))
(meditations (meditations
"Recursion ends with a base case" "Recursion ends with a base case"