用語集


RnRS 等で使われる用語について説明する。

代入(assignment)

変数束縛されている場所の値を変更すること。

逆クォート(backquote)

quasiquote の別称。

束縛(binding)

ある場所識別子を対応づけること。あるいは対応づけたもの。

束縛構文(binding construct)

構文キーワードに、または場所変数に対応づけるフォーム。

本体部分(body)

lambda 式等の直下のフォーム。この先頭に現れた定義群はその本体部分に局所的なものになる。

真偽値(boolean)

Scheme の基本型の一。

定数(constant)

変更することのできない値。リテラルデータや symbol->string の返した文字列がこれに当たる。これらを変更しようとすると &assertion 例外が発生する。

継続可能な例外(continuable exception)

発生したあとでも例外ハンドラで適切な処置を行なうことによりプログラムの実行を継続することのできる例外。

継続(continuation)

ある計算に対する(既定の)未来全体。

核形式(core form)

マクロをすべて展開した結果として現れるフォーム。どのフォームが核形式に含まれるかは実装系依存である。

データ(datum)

オブジェクト外部表現であり、 put-datumget-datum とで書き出し・読み戻しのできるもの。

定義(definition)

トップレベルに現れた場合にはトップレベルの束縛を作り、本体部分の先頭に現れた場合には局所束縛を作り出す形式。

動的環境(dynamic environment)

dynamic-windwith-exception-handler などにより設定され、手続きの引数とは別個に取得できる情報。

動的存続期間(dynamic extent)

ある手続き呼び出しについて、初期化が行なわれてからその手続き呼び出しから戻るまでの時間。

同値述語(equivalence predicate)

数学の同値関係に対応する述語

脱出手続き(escape procedure)

call-with-current-continuation の引数の手続きに渡される手続き

エスケープシークェンス(escape sequence)

文字列リテラル内における \a, \n など。

正確な(数)(exact)

正確な数値オブジェクトを正確な操作に対して得られた数。戻り値として返ってきた正確な数は数学的に正しい結果である。

正確性(exactness)

数が近似や丸め誤差を含まないこと。

例外的状況(exceptional situation)

構文違反、手続きの仕様に対する違反、処理系の制約への違反、環境における例外的な状況の総称。

式(expression)

評価されて値を返すもの。

外部表現(external representation)

構文データの別名。

偽(false)

#f である値。

fixnum

実装依存のある特定の範囲にある正確な整数の部分集合。

flonum

実装依存の、不正確な数の部分集合。

フォーム、形式(form)

Scheme プログラムにおける構文上の単位。

健全な(マクロ)(hygienic)

to-be-written

識別子(identifier)

値を格納している場所を表しうるもの。

変更不可能(immutable)

定数であること。

実装による制約(implementation restriction)

不正確なで表しうる値の範囲や、非数が利用可能であるか、など各実装によって課せられる制約。

インポートレベル(import level)

識別子がどのフェーズで参照可能であるかを表す属性。

非真正リスト(improper list)

空リストで終端されないリスト

不正確な(数)(inexact)

不正確な数値リテラルや不正確な演算に由来する数。

無限大(infinity)

正の無限大に同じ。

(ライブラリの)インスタンス(instance)

to-be-written

インスタンス化(instantiation)

ライブラリインスタンスを作成する過程。

整数オブジェクト(integer object)

整数数値オブジェクト(integer number object)の別称。

キーワード(keyword)

構文キーワードに同じ。

レベル(level)

インポートレベルに同じ。

語彙素(lexme)

字句構文により規定される有意な文字の並び。

ライブラリ(library)

Scheme プログラムの構成要素の一。定義から成り、他のライブラリから定義を取り込み、他のライブラリへ定義を公開する。

リスト(list)

Scheme の基本型の一。を数珠つなぎにし空リストで終端したもの。

リテラル(literal)

表記したものそれ自体に評価されるもの。数値真偽値、文字、文字列、バイトベクタがこれに当たる。リテラルはまた定数でもある。

場所(location)

値を格納するところ。

マクロ(macro)

構文抽象の別名。

マクロキーワード(macro keyword)

キーワードに同じ。

マクロ変換子(macro transformer)

マクロの使用がどのようにより原始的な形式に変換されるか指定するもの。

マクロの使用(macro use)

to-be-written

変更可能(mutable)

代入が可能であること。

非数(NaN, Not a Number)

値の決定できない不正確な実数オブジェクトと見做されるもの。

負の無限大(negative infinity)

不正確な有理数オブジェクトで表されるどの数よりも小さい不正確な実数

数(number)

Scheme の基本型の一。

数値型(numerical types)

複素数型、実数型、有理数型、整数型の総称。

オブジェクト(object)

値の別称。

対、ペア(pair)

Scheme の基本型の一。

パターン変数(pattern variable)

syntax-rules, syntax-case のパターン部分に現れる `_' と `...' 以外の識別子

フェーズ(phase)

ライブラリ中のが評価されるタイミング。

正の無限大(positive infinity)

不正確な有理数オブジェクトで表されるどの数よりも大きい不正確な実数。

述語(predicate)

常に #t か #f を返す手続き

前置記法(prefix notation)

Lisp 族の言語で使われる式の表記法。ポーランド記法。

手続き(procedure)

Scheme の基本型の一。

手続き呼び出し(procedure call)

手続きとその引数を不定の順序で評価し、引数をその手続きに引き渡すこと。

真正末尾再帰(proper tail recursion)

末尾文脈における無制限な手続きの再帰呼び出し。

(例外を)上げる(raise)

現在の例外ハンドラを起動すること。

参照透過(referentially transparent)

to-be-written

領域(region)

束縛が参照可能である範囲。

責任(responsibility)

(プログラマに課せられる〜)値が実際に仕様で述べられている制約に従っていることを保証すること。(実装者に課せられる〜)妥当な範囲、可能な範囲、特定の操作が成功裏に完了する必要があることを認める範囲で、仕様にある制約が満たされているかどうかを確認すること。

安全なライブラリ

R6RS で述べられているライブラリ、及び、安全なライブラリだけを取り込んだライブラリ

simplest rational

to-be-written

特殊形式(special form)

フォームの最初の要素が構文キーワードであるフォーム

つなぎ合わせ(splicing)

本体部分に現れた begin フォームの下位フォームが、あたかも begin フォームで包まれていないかのように、その上位フォームにつぎ合わされること。

標準ライブラリ(standard libraries)

R6RS Standard Libraries で言及されるライブラリ。

文字列(string)

Scheme の基本型の一。

下位フォーム(subform)

あるフォームの下位要素であるフォーム

シンボル(symbol)

Scheme の基本型の一。

構文抽象(syntactic abstraction)

マクロ変換子キーワードに束縛したもの。

構文データ(syntactic datum)

情報の損失なしに読み書きできる Scheme のオブジェクト

構文キーワード(syntactic keyword)

構文に名前をつける識別子。

構文違反(syntax violation)

ライブラリ本体、トップレベルプログラム構文抽象における構文違反。 &syntax 例外が発生する。

末尾呼び出し(tail call)

末尾文脈における手続き呼び出し。

末尾文脈(tail context)

R6RS 11.20 参照。

トップレベルプログラム(top-level program)

Scheme プログラムを起動する起点。

変換子(transformer)

マクロ変換子に同じ。

真(true)

ではない値。

未束縛(unbound)

ある識別子に対する束縛が存在しないこと。

規定されない振る舞い(unspecified behavior)

RnRS の範囲で規定されていない振る舞い。

未規定値(unspecified value)

RnRS により規定されていず、実装により異なる値。例えば set! の戻り値など。

変数(variable)

場所に名前をつける識別子

ベクタ(vector)

Scheme の基本型の一。

(ライブラリの)訪問(visit, visiting)

to-be-written