(rontolisp) docs
← 関数

boundp

(boundp symbol)

symbol が束縛されたグローバル変数(defvar/defparameter/トップレベルの setq)を指すとき t を、そうでなければ nil を返します。Common Lisp の dynamic 変数のみを見る boundp と同様、レキシカルな束縛(let、関数引数)は見えません。tnil・キーワードは自己評価する定数なので、それらの boundpt です。

コンパイルバックエンドでは、シンボルがリテラルboundp はコンパイル時に答えが決まり、コストはゼロです。コンパイル済みプログラムは実行時に新しいグローバル変数を生やせないため、その呼び出しより前の定義だけで答えが決まります。計算されたシンボル((boundp (intern name)))の場合のみ、埋め込まれた eval ランタイムのグローバル環境を読むため、eval と同様にそのランタイムが出力に含まれます — symbol-valuefboundp は引数によらず常にそうなります。--dynamic でコンパイルした場合、あるいは eval/load を呼ぶプログラムでは、実行時判定のまま残ります。