kprolog K-Prolog Compiler Version 6.0

内部データベース機能

内部データベースのキーに対していくつかのデータを記憶させる機能を 提供しています。

あるキーに対する最初のデータとして登録するためには recorda/3を用い、 最後のデータとして登録するためには recordz/3を用います。 登録位置を指定して登録するためには recordn/4を用います。

データの検索には先頭からの番号によってデータを取得する recordedn/4と バックトラックによって順に取得する recorded/3が用意されています。 また、データベース参照を用いた instance/2によっても値を取得できます。

データの削除には erase/1を用います。 あるキーに対する全データの削除には eraseall/1が用意されています。

この他、キーに関する機能が用意されています。 あるキーに対して登録されているデータの個数を返すためには record_count/2 を用います。また、現在値を持つキーのすべてを後戻りによって返すために current_key/1が用意されています。


recorda(@Key,@Term,-Ref)
Keyキー
Term
Refデータベース参照
recordz(@Key,@Term,-Ref)
Keyキー
Term
Refデータベース参照
recordn(@Key,@Term,+Position,-Ref)
Keyキー
Term
Position位置
Refデータベース参照

recorda/3は、項 Term を内部データベース中のキー Key の最初の値として記録します。
recordz/3は、項 Term を内部データベース中のキー Key の最後の値として記録します。
recordn/4は、項 Term を内部データベース中のキー Key のPosition番目の値として記録します。
キーは述語頭部の形でなければなりません。Positionは0以上の整数でなければなりません。 Ref はその値に対するデータベース参照で、 Ref から instance/2 を使って値 Term をとりだすことが出来ます。

エラー
instantiation_error
type_error
permission_error


recorded(@Key,-Term,-Ref)
Keyキー
Term
Refデータベース参照
recordedn(@Key,-Term,+Position,-Ref)
Keyキー
Term
Position位置
Refデータベース参照

recorded/3は、内部データベース中の Key の値として記録されている項 Term を探し、後戻りによって1組づつ返します。 Term と Ref は Key のもとに記録されている順番に それぞれその値とデータベース参照として統一化します。 recordesn/4は、内部データベース中の Key の値のI番目のものを探しTermに返します。

エラー
instantiation_error
type_error


erase(@Ref)
Refデータベース参照
eraseall(@Key)
Keyキー

erase/1は、データベース参照 Ref に対応する値を内部データベースからとり除きます。
eraseall/1は、内部データベース中から Key に対応する値をすべてとり除きます。

エラー
instantiation_error
type_error


instance(@Ref,-Term)
Refデータベース参照
Term

データベース参照 Ref に対応する値を Term に単一化します。 Ref が erase によってとり除かれたデータベース参照であれば、この述語は失敗します。

エラー
instantiation_error
type_error


record_count(@Key,-N)
Keyキー
N個数

内部データベース中のキー Key に記録されている値の個数をNと単一化します。 値が1つもなければ失敗します。

エラー
instantiation_error
type_error


current_key(@Key)
Keyキー

内部データベース中に値をもつキーを後戻りにより1個ずつ順に Key と単一化します。

エラー
instantiation_error
type_error



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