match, # match
MINERVA superseeded IF/Prolog. Please see http://www.ifcomputer.co.jp/MINERVA for details.

We discontinued to sell IF/Prolog Dec 31. 2003. For current customers, we continue to provide professional support for IF/Prolog until Dec 31, 2008.

match(+パターン,+アトム) # match(+パターン,+アトム,-回答リスト)

これらの述語は、文字列のパタ−ンマッチングに使われます。「パタ−ン」はテンプレートとして指定するアトムで、任意の文字を含むことができます。記号'*'と'?'はUNIXのワイルドカ−ドと同様な意味を持ち、'*'は0個以上の任意の文字とマッチし、'?'は、任意の1文字とマッチします。UNIXの正規表現で使うような表記 '[集合]' を使って文字の集合を表すパターンを使うこともできます。文字集合としては、単にいくつかの文字を並べるだけでなく、2文字を'-'ではさんで連続した文字範囲を指定することもできます。この文字集合のパターンは、集合で指定した文字のいずれか1個とマッチします。「パタ−ン」に現れる他のすべての文字は、その文字自身とマッチします。

match/3では、「回答リスト」はマッチした文字列のリストと単一化されます。つまり、'*'や'?'などとマッチした「アトム」の中の文字や文字列のリストと単一化されます。match/3はバックトラック可能だということに注意して下さい。

?- match('?el*', hello).

yes ?- match('*ck*',backtrackable,L). L = [ba,trackable]; L = [backtra,able]; no ?- _

?- match('[0-9]*','22',L). L = ['2','2']; no ?- _


Up read on...