Lispの関数は、他のプログラミング言語の関数と同様に、実行可能なコードです。Lispでは、ほとんどの言語とは異なり、関数もまたLispオブジェクトとなります。Lispにおけるコンパイルされていない関数はラムダ式です。つまり、第1要素がシンボル
lambda であるリストのことです(ラムダ式を参照)。
ほとんどのプログラミング言語では、名前のない関数を持つことは不可能です。Lispでは、関数に固有の名前はありません。ラムダ式は名前がなくても関数として呼び出すことができ、この点を強調するために、これを無名関数とも呼びます(無名関数を参照)。Lispにおける名前付き関数とは、単にその関数セルに有効な関数を持つシンボルのことです(関数の定義を参照)。
通常、関数はLispプログラム内のLisp式でその名前が記述された際に呼び出されます。ただし、実行時に関数オブジェクトを構築または取得し、プリミティブ関数
funcall および apply
を用いて呼び出すことも可能です。関数の呼び出しを参照してください。