GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/elisp/Variables-with-Restricted-Values.html ・ emacs-doc.conao3.com

12.16 値に制限のある変数

通常のLisp変数には、有効なLispオブジェクトであればどのような値でも代入できます。ただし、一部のLisp変数はLispではなくCで定義されています。これらの変数の多くは、Cコード内でDEFVAR_LISPを用いて定義されています。Lispで定義された変数と同様に、これらも任意の値を取ることができます。しかし、一部の変数はDEFVAR_INTまたはDEFVAR_BOOLを用いて定義されています。Cによる実装に関する簡潔な解説については、Writing Emacs Primitives、特にsyms_of_filename型の関数に関する記述を参照してください。

DEFVAR_BOOL型の変数は、nilまたはtのいずれかの値しか取り得ません。それ以外の値を代入しようとすると、tに設定されます:

(let ((display-hourglass 5))
  display-hourglass)
     ⇒ t
変数: byte-boolean-vars

この変数には、DEFVAR_BOOL型のすべての変数のリストが格納されています。

DEFVAR_INT型の変数には、整数値しか代入できません。それ以外の値を代入しようとすると、エラーが発生します:

(setq undo-limit 1000.0)
error→ Wrong type argument: integerp, 1000.0