予約語 | 使用法 | 説明 |
---|---|---|
consp | consp object | object がコンスセルの場合 t を返し、そうでない場合 nil を返す。 |
atom | atom object | object がアトムの場合 t を返し、 そうでない場合 nil を返す。コンスセル以外のものは全てアトム。 |
listp | listp object | object がコンスセルか nil の場合 t を返し、そうでない場合 nil を返す。 |
nlistp | nlistp object | nlist の反対。これは object がリストでない場合 t を返し、 そうでない場合 nil を返す。 |
null | null object | object が nil の場合 t を返し、そうでない場合 nil を返す。 この関数は not と同じだが、慣例として object がリストを示す場合 null を用い、 真理値を示す場合 not を用いる。 |
cons | cons object1 object2 | 新しくリストを作る際に用いる関数。 これは object1 を car、object2 を cdr として、 コンスセルを作り、この新しいコンスセルへのポインタを返す。 |
list | list &rest objects | objects を要素とするリストを作る。 結果として返されるリストは nil でターミネートされている。 objects が与えられない場合、empty リストを返す。 |
make-list | make-list integer object | 各要素が object である長さ integer のリストを作る。 |
append | append &rest sequences | sequences の全ての要素を含むリストを返す。 最後の 1 つを除いたアーギュメントは全てコピーされ、 変更されることはない。 |
car | car list | コンスセル list の最初のポインタを返す。 アーギュメントがリストでない場合、エラーになる。 |
cdr | cdr list | コンスセル list の 2 番目のポインタを返す。 アーギュメントがリストでない場合、エラーになる。 |
car-safe | car-safe object | どのような型のアーギュメントに対しても呼ぶことができるようになっている。 |
cdr-safe | cdr-safe object | どのような型のアーギュメントに対しても呼ぶことができるようになっている。 |
nth | nth integer list | list の integer 番目の要素を返す。 |
nthcdr | nthcdr integer list | list の integer 番目の cdr を返す。 |
setcar | setcar cons object | コンスセルの car ポインタをオブジェクトで置き換える。 結果は object 。 |
setcdr | setcdr cons object | コンスセルの cdr ポインタをオブジェクトで置き換える。 結果は object 。 |
nconc | nconc &rest lists | lists の要素を含むリストを返す。 append とは異なり、 lists はコピーせず、 lists の各々の要素の(最後の) cdr ポインタが次のリストを指すよう変更する。 |
reverse | reverse list | list の要素を逆順に持つリストを新しく作る。list は変更しない。 |
nreverse | nreverse list | list の要素を逆順にして返す。 reverse とは異なり、 list の cdr ポインタを大きく変更する。 結果は list の最後のコンスセルへのポインタで、 一般に list はそれ自身の nreverse とは同じではない。 |
sort | sort list predicate | preficate を用いて要素を比較し、cdr ポインタを変えて list をソートし、 ソートされたリストを返す。 predicate は 2つのアーギュメントを持つ関数でなくてはいけない。 これは list 中の 2つの要素を引数として sort 関数内部で呼ばれる。 小さい順にソートするためには、 predicate が、 最初の要素が 2 番目の要素 "より小さい" 場合 t を、 そうでない場合 nil を返すようにする。 |
memq | memq object list | object が list の要素であるか否かを調べる。 要素である場合、 memq は object が最初に現われた場所を頭にして リストの後ろの部分を返す。要素でない場合 nil を返す。 |
delq | delq object list | list から object に eq な全ての要素を削除する。 object がリストの最初の要素である場合を除いて list を変更する。 |
sequencep | sequencep object | object がリストか、ベクトルか、ストリングの場合 t、それ以外の場合 nil を返す。 |
copy-sequence | copy-sequence sequence | sequence のコピーを返す。このコピーに対する変更は、オリジナルには影響を 及ぼさない。しかし、これは sequence のトップレベルのみをコピーし、 それより深いレベルはコピーしない。つまり、 sequence の要素と、コピーの対応する 要素は、互いに eq になる。 |
length | length sequence | sequence 中の要素の数を返す。sequence がリストの場合そのリストが nil で終っていない場合、 wrong-type-argument エラーになる。 |
elt | elt sequence integer | integer を添字とする sequence の要素を返す。 この関数は、 aref や nth と機能的には同じだが、どんな種類のシーケンス に対しても機能する。シーケンス中の最初の要素の添字は 0 。 |
assoc | assoc key alist | alist において key に対応する最初のコンスセルを返す。alist に、その car が key と equal であるコンスセルが存在しない場合、nil を返す。 |
assq | assq key alist | alist において key に対応する最初のコンスセルを返す。alist に、その car が key と eq であるコンスセルが存在しない場合、nil を返す。 eq は equal より速く、ほとんどの alist はシンボルをキーとして用いるため、 assoc より頻繁に用いられる。 |
rassq | rassq alist value | alist のコンスセルの car のかわりに cdr を調べる点を除いて assq と同じ。 この関数は alist 中の value に対する最初のコンスセルを返す。 alist 中に value に eq な cdr が存在しない場合 nil を返す。 |
copy-alist | copy-alist alist | alist の深さ 2 レベルのコピーを返します。各 pair のコピーを作り、 前のものを変更することなく、新しい alist における対応関係を変更できるようにする。 |
予約語 | 使用法 | 説明 |
---|---|---|
set | set symbol object | symbol の評価を行い、symbol に object を代入する。 |
setq | setq [symbol object]* | symbol の評価を行わずに、symbol に object を代入する。 最も一般的な代入の方法。 |
identity | identity object | object を変更せずに返す。quote とは異なり、アーギュメントを評価する。 |
quote | quote object | 評価せずに object を返す。これは評価されてしまうシンボルやリストを プログラム中に持つために用いられる。 quote はプログラム中で頻繁に用いられるので "'" を object の前に置いても 同じことである。 |
' | 'object | (quote object) と同じ。 |
let | let binding-list forms* | 上のレベルのリストとは独立したローカル変数を宣言する。 binding-list に従い変数をバインドし、 forms 中の全てのフォームを順に評価する。 let は (forms 中の)最後のフォームの値を返す。 |
let* | let* binding-list forms* | binding-list の各シンボルを与えられた順にバインドする点を除いて、let と同じ。 |
予約語 | 使用法 | 説明 |
---|---|---|
integerp | integerp object | アーギュメントが integer であるか否かを調べ、 integer である場合 t を返し、 そうでない場合 nil を返す。 |
zerop | zerop object | アーギュメントが 0 であるか否かを調べ、0 である場合 t を返し、 そうでない場合 nil を返す。 |
natnump | natnump object | "Natural number-p" の意味。アーギュメントが負でない数(自然数)であるか否かを調べ、 負でない数である場合 t を返し、そうでない場合 nil を返す。 |
予約語 | 使用法 | 説明 |
---|---|---|
eq | eq object1 object2 | 2 つのオブジェクトが同じオブジェクトである場合 t を返し、 そうでない場合 nil を返す。 |
equal | equal object1 object2 | 2 つのオブジェクトが構造的に同じものである場合 t を返し、 そうでない場合 nil を返す。 eq なオブジェクトはまた equal でもある。 |
= | = m-integer1 m-integer2 | アーギュメントが同じ数値であるか否かを調べ、同じ数値である場合 t を返し、 そうでない場合 nil を返す。 |
/= | /= m-integer1 m-integer2 | アーギュメントが同じ数値でないか否かを調べ、同じ数値でない場合 t を返し、 同じ数値である場合 nil を返す。 |
< | < m-integer1 m-integer2 | 最初のアーギュメントが 2番目のアーギュメントより厳密に小さいか否かを調べる。 小さい場合 t を返し、そうでない場合 nil を返す。 |
<= | <= m-integer1 m-integer2 | 最初のアーギュメントが 2番目のアーギュメントより小さいか等しいかを調べる。 小さいか等しい場合 t を返し、そうでない場合 nil を返す。 |
> | > m-integer1 m-integer2 | 最初のアーギュメントが 2番目のアーギュメントより厳密に大きいか否かを調べる。 大きい場合 t を返し、そうでない場合 nil を返す。 |
>= | >= m-integer1 m-integer2 | 最初のアーギュメントが 2番目のアーギュメントより大きいか等しいかを調べる。 大きいか等しい場合 t を返し、そうでない場合 nil を返す。 |
max | max m-integer &rest m-integers | アーギュメントの最大値を返す。 |
min | min m-integer &rest m-integers | アーギュメントの最小値を返す。 |
予約語 | 使用法 | 説明 |
---|---|---|
if | if condition then-form else-forms* | 最初に condition を評価し、これが nil でない値を返す場合、 then-form を評価し、値を返す。 condition が nil に評価された場合、else-forms を評価し、 その最後の値を返す。else-forms が存在しない場合、if は nil を返す。 |
cond | cond clauses* | 最初に clauses 中の各 clause の car を順番に non-nil が返されるまで評価する。 clause が (condition body) の形である場合、cond は この body を implied progn として評価し、その結果を返す。 この clause が (condition) の形である場合その値を返す。 |
while | while test-form forms* | GNU Emacs Lisp における唯一の繰返し。 test-form を評価し、その値が non-nil である場合、 フォームの残りのものを順に評価し再び test-form を評価するというよう に繰り返しを行なう。 test-form が nil に評価された場合、 while フォームを exit する。 while は常に nil を返す。 |
予約語 | 使用法 | 説明 |
---|---|---|
not | not object | object が nil の場合 t を返す。 それ以外の値の場合 nil を返す。 |
and | and forms* | 1つ以上のアーギュメントを受け取り、それらを 1度に 1つずつ評価する。 それらが(全て) non-nil の値に評価された場合、最後のフォームの値を返す。 あるアーギュメントが nil に評価された場合 残りのアーギュメントを評価せずに nil を返す。 |
or | or forms* | 1つ以上のアーギュメントを受け取り、それらを 1度に 1つずつ評価する。 それらが全て nil に評価された場合、or は nil を返す。 あるアーギュメントが non-nil の値に評価された場合 残りのアーギュメントを評価せずにその値を返す。 |
1+ | 1+ m-integer | アーギュメントに 1 を足す。 |
1- | 1- m-integer | アーギュメントから 1 を引く。 |
+ | + &rest m-integers | アーギュメントを足し合わせる。 アーギュメントが与えられない場合は 0 を返す。 オーバーフローのチェックは行わない。 |
- | - &optional integer &rest other-integers | アーギュメントが 1 つの場合、アーギュメントの符号を反転したものを返す。 アーギュメントが複数の場合、 other-integers の全てを integer から引く。 アーギュメトがない場合、結果は 0 になる。 |
* | * &rest integers | アーギュメントを掛け合わせる。 アーギュメントがない場合、1を返す。 オーバーフローのチェックは行わない。 |
/ | / integer1 integer2 &rest other-integers | integer1 を integer2 で割る。アーギュメントがそれ以上存在する場合、 それらで結果を次々に割っていく。 割り算の結果は毎回切り捨てる。 |
% | % integer1 integer2 | integer1 を integer2 で割った余りを返す。 結果の符号は integer1 の符号になる。 integer2 の符号は無視する。 |
予約語 | 使用法 | 説明 |
---|---|---|
defun | defun symbol parameter-list forms* | 新しく lisp 関数を定義する。 symbol をこのフォームの残りの部分が示す関数の名前として定義する。 このシンボルの関数セルが、 parameter-list と forms から作られる ラムダ式 (lambda parameter-list . forms) を指すようにすることで行なわれる。 値セルは関数セルとは独立しているので、同じシンボルをグローバル変数として 用いてもかまわない。 |
lambda | (lambda args documentation body) | 無名関数またはラムダ式と言われ、関数の形だけを定義する。 関数定義をしたくない場合に使われたりする。 |
mapcar | mapcar function sequence | sequence の各要素に function を適用し、その結果のリストを返す。 sequence が nil で終るリストでない場合、エラーになる。 |
mapconcat | mapconcat function sequence separator | sequence の各要素に function を適用し、その結果をストリングとして繋げる。 結果の各 pair の間に separator を挿入する。 |
funcall | funcall function &rest arguments | function をアーギュメントのリストに適用し、その結果を返す。 このリストは全てのアーギュメントから作られる。 |
apply | apply function arg &rest args | 最後のアーギュメントを特別に扱う点を除いて funcall と同じ。 リストは、最後のものを除いた(全ての)アーギュメントから作られ、 最後のものはそのリストの終りに append される。 |