Exercise 1: Use the let
structure inside a function f1
to define a local variable b
with
the value "funcy"
. Then use the str
function to combine two b
s into "funcyfuncy"
.
(defn f1 []
(let [b "funcy"]
(str b b)))
(f1)
Exercise 2: Define a function small?
that returns true
for numbers under 100.
(defn small? [n] (< n 100))
(small? 99) # true
(small? 100) # false
Exercise 3: Define a function message
that has three cases:
(message :boink) # -> "Boink!"
(message :pig) # -> "Oink!"
(message :ping) # -> "Pong"
(defn message [k]
(let [m {:boink "Boink!"
:pig "Oink!"
:ping "Pong"}]
(get m k)))
Exercise 4: Reimplement message
using the if
structure.
(defn message [k]
(if (= k :boink)
"Boink!"
(if (= k :pig)
"Oink!"
(if (= k :ping)
"Pong!"))))
Exercise 5: Reimplement message
using the cond
structure.
(defn message [k]
(cond
(= k :boink) "Boink!"
(= k :pig) "Oink!"
(= k :ping) "Pong!"))
Exercise 6: Reimplement message
using the case
structure.
(defn message [k]
(case k
:boink "Boink!"
:pig "Oink!"
:ping "Pong!"))
Exercise 7: Use the loop
structure to add 1
to an empty vector until it has 10 elements.
(loop [v []]
(if (= (count v) 10)
v
(recur (push v 1))))