TL;DR

  • defn、defmacro、defmulti など、var を作る def フォームは、すべて def をラップするマクロである。
  • defonce は var に初期値が設定されていないときだけ設定し、defn- は名前空間の中からだけ参照できるプライベートな束縛を作る。

内容

defn や defmacro、defmulti など、var を作るための様々な種類の def フォームがある。これらはすべて、def をラップするマクロである。

defonce は、var に初期値が設定されていないときに限り設定する。

(defonce a-symbol initial-value?)

defn- は defn と同じように動作するが、定義された名前空間の中からだけ参照できるプライベートな束縛を作る。

(defn- name & args-as-for-defn)

このほかにも、プライベートな束縛を作る - の付いたバージョンが用意されている。

キーワード