よく使う記法など
檜山正幸 (HIYAMA Masayuki)
Tue Mar 29 2005:start
Tue Mar 29 2005:memo
キマイラ・サイト内の記事で断りなしに使われる(かもしれない)記号、記
法、コーディングなどを以下にまとめておく。
集合
aをなんらかの対象、A, Bを集合とする。
- a∈A : aはAに属する。
- A⊆B : AはBに含まれる(A=Bでもよい)。
- A∪B : AとBの合併集合。
- A∩B : AとBの共通部分。
- A\B : AとBの差集合。Aに属するがBには属さないモノの全体。
- Ac : Aを含む全体集合Xが決まっているときに、X\Aのこと。
- {a1, a2, …, an} : a1, a2, …, an からなる集合。
- {x|…x…} : 条件「…x…」を満たすようなxの全体。
- {x∈A|…x…} : Aに属し、条件「…x…」を満たすようなxの全体。
- {Ai : i∈I} : Iで添字付けられた族
- ∪{Ai : i∈I} : Iで添字付けられた集合族Aiの合併。
- ∩{Ai : i∈I} : Iで添字付けられた集合族Aiの共通部分。
集合に対する固有名詞として、次の記号を使う(ことがある)。
- 0: 空集合、0= {}。
- 1: 単元集合、1= {0}。
- 2: 2元集合、2= {0, 1}
- N: 0を含む自然数の全体、N= {0, 1, 2, ...}
- Z: 整数の全体、Z= {0, 1, -1, 2, -2, ...}
- R: 実数の全体、図形的には両方向に伸びる無限直線。
関数とラムダ記法
f, gなどは関数(写像)を表すとして、f(x)、g(x, y)などは、関数に引数を
適用した結果を表す。「…x…」が変数xを含む式だとして、<x|→…x…>は、x
に…x…を対応させる関数を表す。例えば、<x|→x×2> は2倍する関数である。
double = <x|→x×2> とすると、double(3)の計算は次のように行う。
double(3)
= <x|→x×2>(3)
= 3×2
= 6
変数xの変わりにyを用いて<y|→y×2>と書いても同じ関数を表す。
通常<x|→x×2>は、ギリシャ文字のラムダ(λ)を用いてλx.x×2 と書かれ
るので、ラムダ記法と呼ばれる(形式的なラムダ式ではなくて、内容的な表現
としてのラムダである)。記法<x|→…x…>の意味するところは、λx.…x…
とまったく同じなのでやはりラムダ記法と呼ぶ。λの大文字はΛであり、それ
を横にした形が「<」だから、<x|→…x…>をラムダ記法と呼んでもおかしくな
い(もちろん、コジツケだが)。以下のような記法も使う。
- <x, y|→…x…y…> : 2変数x, yの関数
- <x:A|→…x…> : xの変域が集合Aである関数
- <x:A, y:B|→…x…y…> : xの変域が集合A、yの変域が集合Bである関数
- <x, y:A, B|→…x…y…> : 上と同じ。
サンプルコード/擬似コード
サンプルコードや擬似コードは、多くの場合Javaか、Javaに似たようなその
場限りの疑似言語を使う。次のような、通常はまったく推奨されない書き方を
している。
- 明示的なパッケージは使っていない。
- publicやprotectedはどうしても必要な所以外では使っていない。
- 他のサンプルを明示的なインポートなしで参照・利用している。
- ほとんど「*」を使ったimportで済ましている。
- 例外はたいてい名前を定義するだけ(ダミー定義)。
- ネーミングはJavaBenas規則に従うときも従わないときもある(気分次第)。