kprolog K-Prolog Compiler Version 6.0

アトム操作

本節では、アトムを分解したり生成するための組込み述語を解説します。
atom_length(@Atom,?Length)
Atomアトム
Length整数

アトムAtomの文字の数とLengthが等しければ成功します。

エラー
instantiation_error
type_error


atom_concat(?Atom1,?Atom2,+Atom12)
Atom1アトム
Atom2アトム
Atom12アトム
atom_concat(+Atom1,+Atom2,-Atom12)
Atom1アトム
Atom2アトム
Atom12アトム

Atom1とAtom2がアトムならば、両者を連結したアトムをAtom12と単一化します。
Atom1とAtom2のどちらかが変数ならば、Atom12を二つに分解したものを それぞれAtom1,Atom2に単一化します。この場合、後戻りにより複数の解を生成することがあります。

エラー
instantiation_error
type_error


sub_atom(+Atom,?Before,?Length,?After,?Sub_atom)
Atomアトム
Before整数
Length整数
After整数
Sub_atom部分アトム

アトムAtom内の連続した一部分をアトムとして取り出し、Sub_atomと単一化します。
取り出す部分の指定はAtomの先頭からBefore個を取り除き、末尾から After個取り除いた残りの部分Length個分がSub_atomとなります。 すなわち、合計値Befor+Length+AfterがAtomの長さと常に等しくなるような制約があります。
これらの制約を満たす複数の解を後戻りによって順に返します。

エラー
instantiation_error
type_error
domain_error(not_less_than_zero)


sub_string(+String,?Before,?Length,?After,?Sub_string)
String文字列
Before整数
Length整数
After整数
Sub_string部分文字列

String内の連続した一部分を文字列として取り出し、Sub_stringと単一化します。
取り出す部分の指定はStringの先頭からBefore個を取り除き、末尾から After個取り除いた残りの部分Length個分がSub_stringとなります。 すなわち、合計値Befor+Length+AfterがStringの長さと常に等しくなるような制約があります。
これらの制約を満たす複数の解を後戻りによって順に返します。

エラー
instantiation_error
type_error
domain_error(not_less_than_zero)


atom_chars(+Atom,?List)
Atomアトム
Listリスト
atom_chars(-Atom,+List)
Atomアトム
Listリスト

Atomがアトムならば, Atomを構成する各文字に対応する1文字アトムのリストをListと単一化します。
Atomが変数ならば、Listを構成する1文字アトムを連結したアトムをAtomと単一化します。

エラー
instantiation_error
type_error


atom_codes(+Atom,?List)
Atomアトム
Listリスト
atom_codes(-Atom,+List)
Atomアトム
Listリスト

Atomがアトムならば, Atomを構成する各文字に対応する文字コードのリストをListと単一化します。 このListは文字列になります。
Atomが変数ならば、Listをアトムに変換してAtomと単一化します。

エラー
instantiation_error
type_error
representation_error(character_code)


char_code(+Char,?Code)
Char1文字アトム
Code文字コード
char_code(-Char,+Code)
Char1文字アトム
Code文字コード

Charが1文字アトムならば、Charの文字コードをCodeと単一化します。
Charが変数ならば、Codeをアトムに変換してCharと単一化します。

エラー
instantiation_error
type_error


number_chars(+Number,-Chars)
Number
Charsリスト
number_chars(-Number,+Chars)
Number数値
Charsリスト

Numberが数ならば、その表記を1文字アトムのリストにしたものをCharsと単一化します。
Numberが変数ならば、1文字アトムのリストCharsを数値に変換してNumberと単一化します。

エラー
instantiation_error
type_error
syntax_error


number_codes(+Number,-Codes)
Number
Codesリスト
number_codes(-Number,+Codes)
Number数値
Codesリスト

Numberが数ならば、その表記を文字コードのリスト(文字列)にしたものをCodesと単一化します。
Numberが変数ならば、文字列Charsを数値に変換してNumberと単一化します。

エラー
instantiation_error
type_error
syntax_error



一つ上に戻る 目次に戻る