次: Lambda Expressions, 前: Functions, 上: Functions
一般的には、関数とは、引数(arguments)と呼ばれる値を与えられ、 計算を行うための規則です。 この計算結果を関数の値と呼びます。 計算では副作用、つまり、変数の値やデータ構造の内容に継続する変更 を伴うこともできます。
Emacs Lispの関数や関数のようなオブジェクトに関する重要な用語をあげておきます。
car
やappend
などのCで書いた
Lispから呼び出し可能な関数である。
これらの関数は、組み込み関数とかsubrsとも呼ぶ。
(スペシャルフォームは基本関数とも考えられる。)
関数を基本関数として実装する理由は、
それが基本的なものである、
それがオペレーティングシステムの機能に対する
低レベルのインターフェイスを提供する、
あるいは、高速に動作する必要があるからである。
基本関数を変更したり追加する唯一の方法は、
Cソースを変更してエディタを再コンパイルすることである。
see Writing Emacs Primitives。
command-execute
が起動できるオブジェクトであり、
キー列に対して定義できる。
いくつかの関数はコマンドである。
Lispで書いた関数に対話宣言(see Defining Commands)が含まれているとき、
その関数はコマンドである。
そのような関数は、他の関数と同様にLisp式から呼び出すことができる。
その場合、関数がコマンドであるという事実は関係ない。
キーボードマクロ(文字列かベクトル)もコマンドであるが、
それらは関数ではない。
シンボルの関数定義がコマンドであれば、シンボルはコマンドである。
そのようなシンボルは、M-xで起動できる。
シンボルの定義が関数であれば、シンボルは関数でもある。