Clojure のお手軽オプショナル引数(かなりニッチ)
小ネタ。
個人的には使わないとすぐ忘れてしまう筆頭機能の一つである Clojure の Destructuring。これをちょっとだけ利用した小技を一つ。
一つだけオプショナル引数として欲しいなあって時は
(defn foo [bar & [baz]] (hoge-fn baz bar))
と書くと楽。baz が内部で使う関数の引数の最後になるなら特に考えず apply でもいいけど、そうじゃない場合はちょっと使える、、、かも?
かなり限定された状況でしか使えない小技。キーワード引数付けたいとかデフォルト値入れたいとかになるとしっかり Destructuring するしかない。