LoginSignup
2
2

More than 5 years have passed since last update.

ClojureでFizzBuzzを書いてみる

Last updated at Posted at 2015-10-02

1年前くらいにちょっとかじっていたClojureを最近めっきり書いてなくて、いまからもう一度やろうと思うと完全に忘れてしまっていた。
これから年末にかけて少しづつClojureの修行するつもりなので、練習がてらまずFizzBuzzを書いてみた。

(ns programming-clj.fizzbuzz)

(defn whole-number
  []
  (iterate inc 1))

(defn fizzbuzz-filter
  [x]
  (cond
    (= (rem x 15) 0) "fizzbuzz"
    (= (rem x 5)  0) "buzz"
    (= (rem x 3)  0) "fizz"
    :else x))

(defn start
  [x]
  (take x (map fizzbuzz-filter (whole-number))))

(start 30) 
;=> (1 2 "fizz" 4 "buzz" "fizz" 7 8 "fizz" "buzz" 11 "fizz" 13 14 "fizzbuzz" 16 17 "fizz" 19 "buzz" "fizz" 22 23 "fizz" "buzz" 26 "fizz" 28 29 "fizzbuzz")
(start 15)
; => (1 2 "fizz" 4 "buzz" "fizz" 7 8 "fizz" "buzz" 11 "fizz" 13 14 "fizzbuzz")

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2