Previous: , Up: Variables   [Contents][Index]


1.7.2 Error Message for a Symbol Without a Value

値がバインドされていないシンボルの評価を試みると、エラーメッセージが表示されます。2と2の加算の例で試してみましょう。以下の式の+の直後、1つ目の2の前にカーソルを置いてC-x C-eをタイプしてください:

(+ 2 2)

GNU Emacs 22では以下のようなメッセージがプリントされた*Backtrace*バッファーが表示されるでしょう:

---------- Buffer: *Backtrace* ----------
Debugger entered--Lisp error: (void-variable +)
  eval(+)
  elisp--eval-last-sexp(nil)
  eval-last-sexp(nil)
  funcall-interactively(eval-last-sexp nil)
  call-interactively(eval-last-sexp nil nil)
  command-execute(eval-last-sexp)
---------- Buffer: *Backtrace* ----------

(繰り返しになりますが、*Backtrace*バッファーでqをタイプすればデバッガを閉じることができます。)

このバックトレースは最初に見た‘Debugger entered--Lisp error: (void-function this)’というエラーメッセージとは異なります。最初のエラーメッセージは関数(‘this’という単語)に定義がないというものでしたが、今回は関数に変数としての値がないというエラーメッセージです。

今回はLispインタープリターに+を評価させて、関数定義ではなく変数の値を探してみました。これは前の例のように閉じカッコの後ではなく、シンボルの直後にカーソルを配置することによって行われたのです。これによりLispインタープリターが前にあるS式、この場合は+自体を評価したのです。

+にはバインドされた値がないので、変数としてのシンボルの値がない(void)というエラーメッセージが報告されたのです。

This page has generated for branch:work/add_lispintr, commit:65845cf60c073f2f3182d1d07483530e9bbe1d96 to check Japanese translation.