kprolog K-Prolog Compiler Version 6.0

項の入出力

入出力ストリームに対する操作の中で、Prolog言語の基本的な構文要素であ る項に関する機能を提供しています。 読み取り項の入力には、 ttyread/1ttyread/2read/1read/2が用意されています。 また、項の出力には、 display/1write/1write/2writeq/1writeq/2write0/1が用意されています。 ttyputa/1puta/1 は、以前のバージョンとの互換性のために残されています。

これらの操作の中には対象となる項とともに変数名表が用いられることがあ ります。これは、変数が書理系の内部では、 プログラムに書かれた変数名とは別の名前になって処理されるため、 もともとの変数名を覚えておくものです。規格に適合する形式の変数名の扱いは、 write_term/2,3書出し機能選択によります。

ttyread/2で使われる変数名表は、 以前のバージョンとの互換性のために残された merge_vars/2、 merge_vars/3 により使用されます。


read_term(@Stream_or_alias,?Term,+Read_option_list)
Stream_or_aliasストリーム項または別名
Term
Read_option_list読込み機能選択
read_term(?Term,@Read_option_list)
Term
Read_option_list読込み機能選択
read(?term)
read(@Stream_or_alias,?Term)
Stream_or_aliasストリーム項または別名
Term

入力ストリームStream_or_aliasから読込み項を読み, Termと単一化します。Read_option_listは読込み機能選択です。
Stream_or_aliasが引数にない場合はファイル入力から読みます。

エラー
instantiation_error
type_error
domain_error(stream_or_alias,Stream_or_alias)Streamが変数でもストリーム項でもありません
domain_error(read_option,E)Read_option_listの'E'が変数でないかまたは読込み機能選択として不適切です
existence_error(stream,Stream_or_alias)Stream_or_aliasがオープンされていません
permission_error(input,stream,Stream_or_alias)Stream_or_alias が出力ストリームです
permission_error(input,binary_stream,Stream_or_alias)目標ストリームがバイナリストリームです


write_term(@Stream_or_alias,@Term,@Write_option_list)
Stream_or_aliasストリーム項または別名
Term
Write_option_list書出し機能選択
write_term(@Term,@Write_option_list)
Term
Write_option_list書出し機能選択
write(@Term)
Term
write(@Stream_or_alias,@Term)
Stream_or_aliasストリーム項または別名
Term
writeq(@Term)
Term
writeq(@Stream_or_alias,@Term)
Stream_or_aliasストリーム項または別名
Term
write_canonical(@Term)
Term
write_canonical(@Stream_or_alias,@Term)
Stream_or_aliasストリーム項または別名
Term
write0(@Term)
Term

write_term/3,2、write/1,2は出力ストリームStream_or_aliasにTermを書出します。 Write_option_listは書出し機能選択です。
Stream_or_aliasが引数にない場合はファイル出力に書き出します。

writeq/1,2は、アトムや複合項の名前を''で囲まないと名前の表記として正しくないときに、 ''で囲って出力します。これは書出し機能選択の[quoted(true)]に相当します。

write_canonical/1,2は、オペレータ機能を使わずに、また、リストを . を関数子として出力します。 これは書出し機能選択の[quoted(true),ignore_ops(true)]に相当します。
write0/1はwrite_canonical/1と似ていますが、文字列と解釈できる リストを文字列として、また、リストをリストの形式で出力します。

エラー
instantiation_error
type_error
domain_error(stream_or_alias,Stream_or_alias)Stream_or_aliasが変数でもストリーム項でもありません
domain_error(write_option,E)Read_option_listの'E'が変数でないかまたは読込み機能選択として不適切です
existence_error(stream,Stream_or_alias)Stream_or_aliasがオープンされていません
permission_error(output,stream,Stream_or_alias)Stream_or_alias が入力ストリームです
permission_error(output,binary_stream,Stream_or_alias)目標ストリームがバイナリストリームです


ttyread(?Term)
Term
ttyread(?Term,-V)
Term
V変数名表

ttyread/1は、標準入力から、最初のフル・ストップまでを項として読み取り、 Termと単一化します。標準入力のエンド・オブ・ファイルに達したときは、 アトム'end_of_file'とTermを単一化します。
ttyread/2は、ttyread/1に加えてVに項Termに関する変数名表が入ります。

エラー
syntax_error


display(@Term)
Term

項Termを現在の演算子順位に従って標準出力に書きます。 Termに含まれる項が文字列であると判定した場合は、文字列表記になります。


char_conversion(+In_char,+Out_char)
In_char変換される文字
Out_char変換後の文字

In_char、Out_charは、一文字を表すアトムでなければなりません。
項の入力の際にIn_charに指定する文字をOut_charに変換することを指示します。 In_charとOut_charが同じ場合は、In_charに関する変換の指示を取り消します。

エラー
instantiation_error
type_error
representation_error


current_char_converson(?In_char,?Out_char)
In_char変換される文字
Out_char変換後の文字

In_char、Out_charにマッチする文字変換指示を バックトラックにより一つづつ返します。

エラー
type_error



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