Subscribed unsubscribe Subscribe Subscribe

Clojureのキーワード引数ライブラリ: funky-0.0.1

Clojure

Clojureキーワード+オプショナル引数に対応するマクロを拡張して、ClojureリポジトリClojarsに登録しました。ライブラリの名前はfunkyです。

拡張点は次の通りです。

  • 名前をdefnk*からdefnkへ変更
  • プライベート関数defn-相当のdefnk-を追加
  • 無名関数fn相当のfnkを追加
  • 局所的な関数を束縛するletfn相当のletfnkを追加
  • defnkもfnkを使って書き直した

使い方はREADME.markdownにも書いてありますが、こんな感じです。

user> (use 'org.clojars.maoe.funky)
nil
user> (defnk f [a :b "default-b" :c "default-c" & extras]
        (println a b c extras))
#'user/f
user> (f 0)
0 default-b default-c ()
nil
user> (f 0 1 2)
0 default-b default-c (1 2)
nil
user> (f 0 :b 1 2)
0 1 default-c (2)
nil
user> (f 0 :b 1 :c 2 3 4)
0 1 2 (3 4)
nil

fnkやletfnkなども、想像したとおりの挙動になっていると思います。また、ライブラリのインストールはleiningenを使うのが一番簡単でしょう。

どうぞご利用ください。

追記: defmethodkを追加

multimethod用のdefmethodkも追加しました。