next up previous
Next: 1.2 マッチング関数の構造 Up: 1 変数を含むパターンとデータのマッチング Previous: 1 変数を含むパターンとデータのマッチング

1.1 マッチング関数の仕様

マッチング処理後に変数のバインディング情報を簡単に参照できるようにマッ チング関数はマッチングが成功した場合には,バインディング情報,失敗した 場合には失敗したという印を返すという仕様にする. バインディング情報が返ってくるということはマッチングに成功したというこ とを示す.パターンに変数がない場合には,バインディング情報は何もな くなるため,バインディング情報がないということはマッチングが成功したと いうことを示すことになる. 変数のバインディング情報を連想リストで表現すると,
> (match '(x y z) '(x y z))
NIL 
> (match '(?a ?a) '(x y))
FAIL 
> (match '(?a ?a) '(x x))
((?A . X)) 
> (match '(?a ?a) '(y y))
((?A . Y))
というように,マッチングが失敗した場合に,failというシンボルを返すよう にする.NILという結果は,無条件でマッチしたということを意味する.

generated through LaTeX2HTML. M.Inaba 平成18年5月7日