情報がどのように関数に渡されるのかを確認するため、お馴染みの「2足す2」の例を改めて見てみましょう。Lispでは、次のように記述します。
(+ 2 2)
この式を評価すると、エコーエリアに数値の4が表示されます。Lispインタプリタは、+に続く数値を加算します。
+ によって加算される数値は、関数 + の引数と呼ばれます。これらの数値は、関数に渡される、あるいは渡される情報です。
「引数」という言葉は数学における用法に由来しており、二者間の論争を指すものではありません。むしろ、関数に提示される情報、この場合は +
を指します。Lispにおいて、関数の引数とは、関数の後に続くアトムやリストのことです。これらのアトムやリストの評価によって返された値が、関数に渡されます。関数によって必要とされる引数の数は異なり、全く必要としない関数もあります。3
「argument」という単語が、数学と日常英語という2つの異なる意味を持つに至った経緯を辿るのは興味深い。オックスフォード英語辞典によれば、この単語はラテン語の「to make clear, prove」に由来しており、したがって一つの派生経路では「証明として提示される証拠」、すなわち「提示される情報」を意味するようになり、それがLispにおける意味へとつながった。しかし、もう一つの派生経路では、「他者が反論しうる形で主張すること」を意味するようになり、それが論争という意味へとつながった。(ここで注目すべきは、英語の単語に同時に2つの異なる定義が付随している点である。対照的に、Emacs Lispでは、一つのシンボルが同時に2つの異なる関数定義を持つことはできない。)