また、また久しぶりの更新。この更新頻度はBASTARD!!に通じるものがあるな(笑)
(そういや、BASTARD!!って俺が中1くらいのときに始まってるんだよね…)
最近はあまり仕事ではコーディングできないので、専らウチで簡単なモノしか作ってません。
簡単なモノを知ってる言語で作ってもおもしろくないので、いまさらですがClojureを始めてみました。
ClojureはJVM上に実装されたLisp-Likeなプログラミング言語。JVM上で実装されているってことはJavaとの親和性が高く、ClojureからJavaのクラスをCallしたり、その逆も簡単にできるってこと。
どうしても新しい言語に入るときはこれまでの資産だとか 云々って話が出るのですが、Javaの資産が使えるし、Javaとの連携もできるってところで「職場にも導入しやすいLisp系言語」と言っても過言ではないでしょう。(まぁ、そもそもLispってところが(ryu )
とりあえず、Hello, World書いてみると以下のような感じ。
[sourcecode language=”clojure”]
(println "hello, world")
[/sourcecode]
あぁ、簡単。ちなみに引数を取る関数を定義してみると以下のような感じ。
[sourcecode language=”clojure”]
(defn hello-world [name]
(println (format "Hello, %s" name)))
(hello-world "hoge")
[/sourcecode]
関数の引数がベクタになり、普通のLispよりは読み易い…らしい。(俺はリストでいいと思うけどね)
文字列のformatや正規表現、Mapも標準で使える。Common-LispからLisp業界に入ってる俺にとっては、気持ち悪いくらい普通の用途に使えることが驚き(笑)。
とりあえず、しばらくはこの言語で遊んでみて気付いたことを雑多に書いていきます。
そんな実際に仕事で使える(かもしれない)Lisp系言語Clojureですが、Lispをやってきた人から見ると気持ち悪いコードも許容しています…
[sourcecode language=”clojure”]
(cond (< x 1) "hoge"
(= x 1) "fuga"
(> x 1) "hage")
[/sourcecode]
慣れの問題なんだろうけど、ちょっと気持ち悪いなぁ…