RosettaCodeData/Task/Middle-three-digits/Clojure/middle-three-digits.clj

16 lines
476 B
Clojure

(defn middle3 [v]
(let [no (Math/abs v)
digits (str no)
len (count digits)]
(cond
(< len 3) :too_short
(even? len) :no_middle_in_even_no_of_digits
:else (let [mid (/ len 2)
start (- mid 2)]
(apply str
(take 3
(nthnext digits start)))))))
(def passes '(123 12345 1234567 987654321 10001 -10001 -123 -100 100 -12345))
(def fails '(1 2 -1 -10 2002 -2002 0))