日曜プログラミング

休日趣味でやってるプログラミング関連記事をダラダラと

オレオレ Clojure スタイル

小ネタ。

Clojure スタイルガイド にあるかどうか全部見てないけど、自分がコーディング時に決めてるスタイルを一つ。

マップの値参照時の関数呼び出し

(マップ キー) と言う呼び出しで統一している。 これはマップデータに設定するキーが Clojure の keyword の場合だと、

(something-map :something-key)
(:something-key something-map)

と、どちらの呼び出しも問題なく使えるのだが、 例えばキーを文字列で設定した場合に後者が Exception になるため。

("something-key" something-map)
class java.lang.String cannot be cast to class clojure.lang.IFn

まあ Exception 見れば文字列は関数として呼び出せません(意訳)って感じのメッセージになってるけども 以前どっちも行けるってのだけ覚えてて気にせず後者で書いてて小ハマリしたのと 自分の場合 Clojure のマップデータのキーに keyword にしない事がしばしばあるので。