Next: Making Errors, Previous: Lisp Lists, Up: List Processing [Contents][Index]
Lispにおけるリスト — すべてのリストは実行できるプログラムです。リストを実行(Lispの用語では評価(evaluate))すると、コンピューターは3つのうちのいずれかを行うでしょう。1つ目はそのリスト自体をリターンする以外には何も行わない、2つ目はエラーメッセージの送信、そして3つ目は何かを行うコマンドとしてリストの最初のシンボルを扱います(当然ながら通常あなたが実際に望むのは最後の3つ目でしょう!)。
わたしは前のセクションのいくつかの例でリストの前に置いた単一のアポストロフィ'
はクォート(quote)と呼ばれるもので、リストの前に記述された際にはそのリストを記述された通りに受け取ること以外は何も行わないようLispに伝えるのです。しかしリストの前にクォートが何も記述されていなければ、リストの最初のアイテムは特にコンピューターがしたがうべきコマンドとして扱われます(これらのコマンドのことをLispでは関数(function)と呼ぶ)。上述のリスト(+
2
2)
はその前にクォートがないので、Lispはリストの残りのアイテムにたいして何かを行う命令(後続する数値を加算する)として+
を理解します。
これをGNU Emacs内部のInfoで読んでいる場合には、以下のリストの右側のカッコ(訳注: 閉じカッコ)の直後に配置してからC-x C-e私タイプしてリストを評価することができます:
(+ 2 2)
これを行うことによってエコーエリアに数字の4
が表示されるでしょう2。(ここで行ったのがリストの評価です。エコーエリアとはテキストの表示やエコーを行うためのスクリーン下部にある行のことです。)
では同じことをクォートされたリストにたいして行ってみましょう。以下のリストの右カッコの直後にカーソルを置いてC-x
C-eをタイプしてください:
'(this is a quoted list)
エコーエリアに(this is a quoted list)
と表示されるのを確認できたと思います。
どちらの場合においても、あなたはGNU Emacs内部のLispインタープリター(Lisp interpreter)と呼ばれるプログラムにたいしてコマンドを与える、すなわちインタープリターにたいして式を評価するコマンドを与えたことになります。Lispインタープリターという名前は式の意味を考える人(式をinterpret、すなわち評価する人)によって行われるタスクに由来します。
リストの一部ではない(カッコで囲われていない)アトムを評価することもできます。繰り返します。Lispインタープリターは人間が読める式をコンピューター言語に翻訳するのです。でもそれ(Variablesを参照)の前に、エラーが発生した際にLispインタープリターが何を行うかについて議論しておきましょう。
Emacsは整数の値を10進数(decimal)、8進数(octal)、16進数(hex)、そして文字(character)としての値も表示するでしょうが、今のところはこの便利な機能については無視することにしましょう。