Hello Clojure

何となくClojureを入れてみた。『プログラミングClojure』(Stuart Halloway著・川合史朗訳) という本を読み始めた。

(defn greeting
  "Returns a greeting"
  ([]
     (greeting "World"))
  ([username]
     (str "Hello " username)))

(println
 (greeting "Yarb"))

(println
 (greeting))

引数の数でマッチするということができるらしい。同じことをRubyでやると、

def greeting(*args)
  if args.size > 0 then
    "Hello " + args.join(" ")
  else
    greeting("World")
  end
end

p greeting("Yarb")
p greeting

という感じかしら。可変長の引数は必ずArrayとなる。