日曜プログラミング

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

Clojure のお手軽オプショナル引数(かなりニッチ)

小ネタ。

個人的には使わないとすぐ忘れてしまう筆頭機能の一つである ClojureDestructuring。これをちょっとだけ利用した小技を一つ。

一つだけオプショナル引数として欲しいなあって時は

(defn foo [bar & [baz]]
  (hoge-fn baz bar))

と書くと楽。baz が内部で使う関数の引数の最後になるなら特に考えず apply でもいいけど、そうじゃない場合はちょっと使える、、、かも?

かなり限定された状況でしか使えない小技。キーワード引数付けたいとかデフォルト値入れたいとかになるとしっかり Destructuring するしかない。