勉強して2週間の感想
これはClojure Advent Calendar 2013 - Qiita [キータ]22日目の記事です。
プログラミング歴半年がClojureを勉強した感想を書きたいと思います。
まず私はプログラミング言語は主にjavaを勉強していて、Lispというものは、初めて知った次第です。
・コードが短い
最初の印象は、「えっ、これで動いちゃうの?」というかんじで
コードがすごく短くて驚きでしたね。
ものによっては、Javaの数行が1行になっちゃたり、すごいです、感動です、万歳。
とテンション上がったのですが、
それから勉強を進めていくと、やはり思いました。
・カッコ多い
「うん、カッコめっちゃ多いね」
参考書の最初のほうでLispはカッコ地獄だよと脅されていたのですが、
やっぱり多い。
Clojureはカッコ少ないとか言ってるし、これで少ないとかLispすごいな。
あとコマンドプロンプトって間違いに気づいても戻れないから、何回も最初から書き直すハメに。
多少慣れてきたけど毎回カッコの確認作業です。
・束縛か配列か?
参考書にこういうコードがありました。
(defn count-heads-pairs [coll]
(loop [cnt 0 coll coll]
(if (empty? coll)
cnt
(recur (if (= :h (first coll) (second coll))
(inc cnt)
cnt)
(rest coll)))))
このloopの引数が最初4つの値を持つ配列だと思っちゃいました。
でもcntに0、collに同じ名前ですが1行前のcollを束縛していて、
値としては2つだったんですね。
[ ]←これが配列だよーって認識していました。
・最後に
アドベントカレンダーというものを知って参加してみたのですが、
あんまり面白いこと書けなくてすいません。
素直にClojureは面白いと感じました。
Javaと全然違うし、
参考書の言い回しを引用すると自然言語的にコードを書けるし、
遅延シーケンスとかすごいです。
これからも勉強がんばります!!