関数名 | 使い方 | 説明 |
define | (define x y) (define (f x1 x2 ... xn) y1 y2 ... yn) | 変数xの値をyの値で定義する(束縛する)。xには変数のみ記述できる。 引数x1,..,xnをとる関数fを定義する。関数fの内容は式y1,...,ynに記述する。 関数fが評価されれば、y1から順に評価され、最後のynの値が関数fの返値として返される。 |
set! | (set! x y) | 変数xの値をyの値で再定義する。 |
cond | (cond (c1 e1)...(cn en) (else e)) | 条件式c1からcnを順に評価し、最初に真(#t)となった条件式ciに対し、eiが評価され、eiの値がcond文の返値として返される。どの条件式も偽(#f)となる場合はelseの中の式eが評価される。 |
if | (if c e1 e2) | 条件式cが真(#t)ならe1を評価しその結果をifの返値として返す。偽(#f)ならe2を評価しその結果をifの返値として返す。 |
lambda | (lambda (x1 x2 ... xn) y1 y2 ... yn) | λ式を定義する。x1,...,xnを引数として受け取り、y1からynまで順に評価される関数を返す。この関数が評価されれば、y1からynまで順に評価し、最後のynの評価結果を関数の返値として返す。 |
let | (let ((x1 y1) (x2 y2) ... (xn yn)) e1 e2 ... en) | 変数x1からxnに対し、それぞれy1,...,ynの値を束縛し、e1からenまでを評価し、enの評価結果をlet文の返値として返す。x1からxnの変数名が有効なのはこのlet文内だけである。 |
begin | (begin e1 e2 ... en) | e1,...,enを順に評価し、最後のenの返値をbegin全体の返値として返す。 |
apply | (apply f xs) | リストxs=(x1 x2 ... xn)に対し、(f x1 x2 ... xn)を評価する。 |
display | (display x) | xを表示する。 |
load | (load x) | ファイルxを読み込む。 |
error | (error x1 x2 ... xn) | 非組み込み関数。エラーメッセージx1,x2,...,xnを表示し、エラーを返す。 |
関数名 | 使い方 | 説明 |
+, -, *, /, remainder | (+ x1 ... xn), (- x1 ... xn), (* x1 ... xn), (/ x1 ... xn), (remainder x y) | 和(+)、差(-)、積(*)、商(/)、余り(remainder) |
- | (- x) | xの符号を反転させた値を返す。(* -1 x)と同じ。 |
abs | (abs x) | xの絶対値を返す。 |
exp, expt, log | (exp n), (expt x y), (log x) | 指数や対数の計算をする関数。(exp n)はeのn乗。(expt x n)はxのn乗。logは自然対数。 |
min, max | (min x1 ... xn), (max x1 ... xn) | minはx1,...,xnの中で一番小さな数値を返す。maxはx1,...,xnの中で一番大きな数値を返す。 |
square | (square x) | 非組み込み関数。xの2乗を計算。 |
cube | (cube x) | 非組み込み関数。xの3乗を計算。 |
=, <, >, <=, >= | (= x y) (< x y) (> x y) (<= x y) (>= x y) | 等号、不等号。 |
and, or, not | (and x1 x2 ... xn), (or x1 ... xn), (not x) | 論理積、論理和、否定。 |
number? | (number? x) | xが数ならば#tを返す。そうでなければ#fを返す。 |
even?, odd? | (even? x), (odd? x) | xが偶数かどうかを判定する述語(even?), xが奇数かどうかを判定する述語(odd?) |
gcd | (gcd x y) | xとyの最大公約数を計算。 |
関数名 | 使い方 | 説明 |
cons | (cons x y) | xとyのペアを生成する。 |
car | (car x) | ペアxの第一要素を返す。 |
cdr | (cdr x) | ペアxの第二要素を返す。 |
list | (list x1 x2 ... xn) | x1,...,xnを要素とするリストを生成する。 |
length | (length x) | リストxの長さを返す。 |
list-ref | (list-ref x n) | リストxのn+1番目の要素を返す。 |
append | (append x y) | リストxとリストyを連結したリストを返す。 |
reverse | (reverse x) | リストxを逆順に並べたリストを返す。 |
map | (map f x) | 関数fとリストx(=(x1,...,xn))に対し、(list (f x1) (f x2) ... (f xn))を評価した結果を返す。 |
filter | (filter c x) | 非組み込み関数 リストxの各要素xiのうち条件式(c xi)が真となる要素だけを並べたリストを返す。 |
reduce | (reduce f ini x) | 非組み込み関数 リストx(=(x1 x2 ... xn))に対し、(f x1 (f x2 ... (f xn ini)))を評価した結果を返す。 |
range | (range x y) | 非組み込み関数 整数xから整数yまで並べたリストを返す。 |
for | (for x f) | 非組み込み関数 リストx(=(x1 x2 ... xn))と関数fに対し、(f x1),..,(f xn)を順に評価する。返値はない。また、引数の順番が逆になったfor-eachという組み込み関数も存在する。 |
for-each | (for-each f x) | (for x f)と同じ。 |
assoc | (assoc key x) | 連想リストx(=((k1 v1) (k2 v2) ... (kn vn)))に対し、key=kiとなる要素をk1からknまで順に探し、key=kiとなるkiがみつかれば(ki vi)を返す。見つからなければ偽(#f)を返す。 |
null? | (null? x) | リストxが空リストかどうかを判定する。 |
pair? | (pair? x) | xがペアかどうかを判定する。 |