kprolog K-Prolog Compiler Version 6.0

項に関する情報の取得や項の操作に関して

が用意されています。
functor(-Term,@Name,@Arity)
Term
Name名前
Arityアリティ
functor(@Term,?Name,?Arity)
Term
Name名前
Arityアリティ

Termが複合項ならば、NameをTermの名前であるアトムと、 ArityをTermのアリティを表す整数とそれぞれ単一化します。
Termがアトミックな項ならば、NameをTermと、Arityを0とそれぞれ単一化します。
Termが変数で Arity>0 ならば、Termを名前がNameでアリティがArityの複合項と単一化します。 Arity==0 ならば、TermとNameを単一化します。

エラー
instantiation_error
type_error
representation_error(max_arity)


arg(+N,+Term,?Arg)
N整数
Term複合項
Arg

複合項TermのN番目の引数をArgと単一化します。Nが0のときは失敗します。
この述語は、複合項の特定の位置の引数をとり出したり、複合項の引数に値を代入するために用います。

エラー
instantiation_error
type_error
domain_error(not_less_than_zero,N)Nが負の数です。


+Term=.. ?List
Term
Listリスト
-Term=.. +List
Term
Listリスト

Termが複合項ならば、Listを頭部がTermの関数子で 尾部がTermの引数のリストであるようなリストと単一化します。
Termがアトムならば、Listをそのアトムを要素とするリストを単一化します。
Termが変数ならば、Listの頭部が関数子でListの尾部を引数とするような複合項または アトムとTermを単一化します。

エラー
instantiation_error
type_error
representation_error(max_arity)Listが複合項の最大のアリティを越えるような長さを持っています。


numbervars(+Term)
Term
numbervars(+Term,+Start,-End)
Term
Start開始番号
End終了番号

Termに現れる変数をそれぞれ$VAR(N)と形の項と単一化します。 NはStartから始まる整数です。
numbervars(X) は numbervars(X,1,_) と同じです。

エラー
instantiation_error
type_errorStartが整数ではありません。


name(@Term,-String)
Termアトミック項
String文字列
name(-Term,@String)
Termアトミック項
String文字列

アトミック項をその表記である文字列と相互変換します。

エラー
instantiation_error
type_error


encode(@String,-Term)
String文字列
Term
encode(-String,@Term)
String文字列
Term

項をその表記である文字列と相互変換します。
文字列にシンタックスエラーがある場合は、エラーメッセージを表示します。

エラー
instantiation_error
type_error


nth(@List,@N,-Nth)
Listリスト
N整数
Nth

ListのN番目の要素をNthと単一化します(List の最初の要素は1番目です)。
Listがリストでない場合は失敗します。

エラー
instantiation_error
type_error


length(@List,-Len)
Listリスト
Len整数

リストListの長さをLenと単一化します。
List がリストでなければ失敗します。

エラー
instantiation_error
type_error


copy_term(@Src,-Dst)
Src
Dstコピー

項Srcを中の変数を新たな変数で置き換えた(コピーした)項をYと単一化します。


subsumes(@General,+Specific)
General
Specific

項Generalが項Specificの一般形であるとき、つまり、Generalに出現する変数になんらかの代入を行うとSpecificにできるとき、成功します。


replace_term(@Term,@Pattern,@Replace,-Newterm)
Term
Patternパターン
Replace置き換え項
Newtermコピー

項Term中に出現するPatternと単一化可能な項をReplaceで置き換えた結果をNewtermと単一化します。

エラー
instantiation_error
type_error


reg_match(@Target,@Pattern)
Target文字列またはアトム
Pattern正規表現文字列

Targetのつづりが正規表現文字列Patternと適合可能であれば成功し、そうでなければ失敗します。

エラー
instantiation_error
type_error



一つ上に戻る 組込み述語に戻る 目次に戻る