Hatena::ブログ(Diary)

みずぴー日記

2010-05-08(土)

Clojureでfizzbuzz

| Clojureでfizzbuzz - みずぴー日記 を含むブックマーク

30分プログラム、その764。

Clojureのお勉強としてfizzbuzz書いてみました。まだ慣れないなぁ。

使い方

$ clj fizzbuzz.clj
1
2
fizz
4
buzz
fizz
7
8
fizz
buzz
11
fizz
13
14
fizzbuzz

ソースコード

(defn divide? [n m]
  (= (mod n m) 0))

(defn fizz-buzz [count]
  (map #(cond (divide? % 15) "fizzbuzz"
	      (divide? % 3)  "fizz"
	      (divide? % 5)  "buzz"
	      :else          %)
       (range 1 count)))

(dorun (map println (fizz-buzz 100)))

参考

2010-04-17(土)

Clojureはじめました

| Clojureはじめました - みずぴー日記 を含むブックマーク

30分プログラム、その758。Clojureはじめました。

始めてなのでとりあえず階乗からスタートしてみました。

今のところ感想。

  • clojure-modeは簡単にインストールできたけど、対話環境を使うにはslimeとかを入れなきゃダメらしい。ちょっと面倒。
  • defnで関数を定義するときにパターンマッチが使えると思いこんでたけど、引数の数によてオーバロードできるだけらしい。そりゃ、そうか。

使い方

$ clj fact.clj
3628800

ソースコード

;; clojure

(defn fact
  ([n] (fact 1 n))
  ([i n]
     (if (= n 0)
       i
       (recur (* i n) (- n 1)))))

(println (fact 10))

参考