clojure.contrib.def

clojure.contrib/def.cljのソースを眺めたのでメモ。

名前 説明
defvar 変数を初期値とドキュメント文字列で定義する。
defunboud unbound変数をドキュメント文字列で定義する。
defmacro- defmacroのプライベート定義版。
defvar- defvarのプライベート定義版。
defunbound- defunboudのプライベート定義版
defstruct- defstructのプライベート定義版
defone- defonceのプライベート定義版
defalias 変数のエイリアスを定義する。メタデータには元の変数のメタデータがマージされる。
defhinted 初期値のクラスを型のヒントとして変数を定義する。
name-with-attributes マクロ引数の定義で使用できる。ドキュメント文字列やメタデータを簡単に定義できる(ようだ)。
defnk キーワード引数を扱える関数を定義する。

def*-と最後にハイフンが付くdef*を使用すると、定義した名前空間だけで有効な変数(プライベートな変数)を定義できる。
キーワード引数が使用できるdefnkは便利そうなので、後で詳細を調べてみよう。(Common Lispと同様?)