K-Prolog Compiler Version 6.0 
入出力ストリームに対する操作の中で、Prolog言語の基本的な構文要素であ る項に関する機能を提供しています。 読み取り項の入力には、 ttyread/1、 ttyread/2、 read/1、 read/2が用意されています。 また、項の出力には、 display/1、 write/1、 write/2、 writeq/1、 writeq/2、 write0/1が用意されています。 ttyputa/1、 puta/1 は、以前のバージョンとの互換性のために残されています。
これらの操作の中には対象となる項とともに変数名表が用いられることがあ ります。これは、変数が書理系の内部では、 プログラムに書かれた変数名とは別の名前になって処理されるため、 もともとの変数名を覚えておくものです。規格に適合する形式の変数名の扱いは、 write_term/2,3の書出し機能選択によります。
ttyread/2で使われる変数名表は、 以前のバージョンとの互換性のために残された merge_vars/2、 merge_vars/3 により使用されます。
| read_term(@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と単一化します。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) |
| write_term(@Term,@Write_option_list) |
| Term | 項 |
| Write_option_list | 書出し機能選択 |
| write(@Term) |
| Term | 項 |
| write(@Stream_or_alias,@Term) |
| writeq(@Term) |
| Term | 項 |
| writeq(@Stream_or_alias,@Term) |
| write_canonical(@Term) |
| Term | 項 |
| write_canonical(@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 |