(rontolisp) docs
← マクロ

do-symbols

(do-symbols (var [package [result]]) body...)

package (省略時はカレントパッケージ) でアクセス可能なシンボルごとに var を そのシンボルに束縛して本体を評価し、その後 var を nil に束縛して result を評価し その値を返します (result フォームが無ければ nil)。アクセス可能とは、そのパッケージが 所有するシンボル (内部・外部を問わず) に加え、use リスト経由で継承しているエクスポート 済みシンボルのことです。それぞれは所有元パッケージの綴りで表されるため、cl を use する パッケージでは裸の cl 名が得られます。シンボルはソート順で渡されます。

これは do-external-symbols と同じくインタプリタ専用の オペレータです。コンパイル済みバックエンドは実行時にパッケージレジストリを持たないため、 そこへ到達する呼び出しはコンパイルエラーになります。#. の読み取り時フォームの中では どこでも動作します。コンパイル前にマクロ時評価器が解決するためです。