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_error | Startが整数ではありません。 |
| 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 |