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))