|
|
| Zoom to |
|
バージョン3から4への移行
|
|
イントロダクション
|
|
abolish
|
|
abort
|
|
# append
|
|
arg
|
|
計算式(arithmetic)
|
|
アリティ(arity)
|
|
ASCII文字
|
|
assert
|
|
asserta_term, asserto_term, assertz_term
|
|
atom, atomic_length
|
|
\(バックスラッシュ)
|
|
#bagof, #setof
|
|
block, exit_block, cut_block
|
|
break
|
|
bye
|
|
call, execute
|
|
文字セット, char_code
|
|
#clause, #clause_term
|
|
clear_eol, clear_eos, clear_screen
|
|
close
|
|
コメント
|
|
compare
|
|
項の比較
|
|
値の比較
|
|
compiles
|
|
concat
|
|
連言(conjunction)
|
|
consult
|
|
コントロールスタック(control stack)
|
|
データの型変換(conversion)
|
|
copy_term
|
|
correct
|
|
cpu時間
|
|
#current_predicate, #current_atom, current_language
|
|
!(カット)
|
|
データベース(database)
|
|
debug, nodebug, debug_goal
|
|
debug_mode
|
|
decompcons
|
|
指令(directives)
|
|
選言(disjunction)
|
|
display
|
|
編集(edit)
|
|
終了(end)
|
|
end_of_file文字
|
|
equiv_char, image_length, byte_length
|
|
例外処理(exceptions)
|
|
error_protect, exception, exception_handler
|
|
exists
|
|
exit
|
|
expand_term, phrase(+ゴール,?リスト)
|
|
?- export, ?- common, ?- import, ?-hidden
|
|
事実(fact)
|
|
fail
|
|
filepos, files, flush, reset_streams
|
|
findall
|
|
float_format
|
|
# for
|
|
functor
|
|
gc
|
|
get, get0, get_until
|
|
getchar
|
|
getenv, get_home, get_last, move_cursor
|
|
get_global, # global_variable
|
|
ゴール(goal)
|
|
文法規則(grammar rules)
|
|
リストの先頭(head of list)
|
|
節のヘッド(head of clause)
|
|
help
|
|
ifprolog
|
|
ifsem
|
|
include
|
|
index
|
|
入力ストリーム(input stream)
|
|
インタプリタレベル(interpreter level)
|
|
is
|
|
length, #reverse
|
|
list_mode, listing
|
|
リスト(lists)
|
|
load, loaded
|
|
localtime
|
|
ループ(loops)
|
|
lower_upper, national_letters
|
|
make_atom, make_number
|
|
match, # match
|
|
# member
|
|
modify_mode
|
|
?- module, ?- module_body
|
|
name
|
|
nl
|
|
:- nonotify, nonotify
|
|
not
|
|
number
|
|
once
|
|
オペレータ(operator)
|
|
op, # current_op
|
|
outpos, outtab
|
|
出力ストリーム(output stream)
|
|
program_parameters, system_parameters, user_parameters
|
|
parse_atom
|
|
parse_position
|
|
predicate, predicate_mode
|
|
predicate_type
|
|
print
|
|
手続き(procedure)
|
|
program
|
|
# prolog_flag
|
|
prolog_library
|
|
prolog_system, prolog_version, proroot
|
|
put
|
|
put_byte, get_byte
|
|
raise_error
|
|
read, read_term
|
|
read_error, report_read_error
|
|
reconsult(+ファイル名)
|
|
# repeat
|
|
#retract
|
|
retractop
|
|
save_system, save_module
|
|
see, seeing, seen
|
|
set_global
|
|
set_home, setoutpos, setupterm
|
|
signal, signal_handler, alarm
|
|
skip
|
|
sort, keysort
|
|
spy
|
|
dbsize, ssize, gused, dbused, tused, lused
|
|
statistics
|
|
open, close, stream_control, #current_stream, link_stream
|
|
文字列(strings)
|
|
複合項(structures)
|
|
subatomic
|
|
sum, inc
|
|
symbol
|
|
計算式の構文(syntax of arithmetic expression)
|
|
構文チェッカー(syntax checker)
|
|
syntax_error
|
|
項の構文 (Syntax of terms)
|
|
system
|
|
system_date, system_time
|
|
system_predicate
|
|
tab
|
|
tell, telling, told
|
|
項(term)
|
|
X is time
|
|
trace, notrace, trace_mode, trace_goal
|
|
trace, tracing, traced
|
|
トレイル(trail)
|
|
true
|
|
tty_size
|
|
type_of, atom, nonvar, atomic, numeric, digit, realn, integer, struct, letter, var
|
|
未定義の述語(undefined_predicate)
|
|
?項1 = ?項2, +項1 \= +項2
|
|
?複合項 =.. -Univリスト, -複合項 =.. ?Univリスト
|
|
unload
|
|
unset_global
|
|
user
|
|
変数(variables)
|
|
write
|
|
|
|
|
|
IF Computer
>
IF/Prolog
>
Manuals
>
IF/Prolog V4.1 マニュアル
>
IF/Prolog V4.1 レファレンスマニュアル
|
IF/Prolog V4.1 レファレンスマニュアル
|
|
| read on...
|
-
バージョン3から4への移行
-
IF/Prologバージョン3に属するいくつかの述語が、IF/Prologバージョン4の下にもう使えなくなりました。ところで、以前IF/Prologバージョン3上で開発された古いプログラムをIF/Prologバージョン4上で走らせるケースもあります。そこで、IF/Prologバージョン3互換性モジュールがIF/Prologバージョン4の中に含まれています。そのモードがversion3:initという述語を呼び出すことによって初期化されます。...
-
イントロダクション
-
-
abolish
-
abolish(+ヘッド)...
-
abort
-
その時点でのゴ−ルの実行を中止しインタプリタのループに戻ります。breakの呼び出しのためにインタプリタのル−プが入れ子になっている場合は、インタプリタのトップレベルへ戻ります。インタプリタのループ中にない場合は、Exceptionは起こりませんが、これはエラーとしてみなされます。その場合のIF/Prologの終了コードは1です。...
-
# append
-
# append(?リスト1,?リスト2,?リスト3)...
-
arg
-
arg(+引数の位置_式,?複合項,?引数)...
-
計算式(arithmetic)
-
<算術 関数/述語/演算子>...
-
アリティ(arity)
-
項(例えば述語あるいは複合項)のアリティは、引数の数です。...
-
ASCII文字
-
-
assert
-
asserta(+節)...
-
asserta_term, asserto_term, assertz_term
-
asserta_term(+節,+変数リスト)...
-
atom, atomic_length
-
atom(+項)...
-
\(バックスラッシュ)
-
\(backslash)...
-
#bagof, #setof
-
# bagof(+テンプレート,+ゴール,-解答リスト)...
-
block, exit_block, cut_block
-
block(+ゴール,+マーク,+終了ゴール)...
-
break
-
break...
-
bye
-
bye...
-
call, execute
-
call(+ゴール)...
-
文字セット, char_code
-
文字セット(character set)...
-
#clause, #clause_term
-
#clause(?ヘッド)...
-
clear_eol, clear_eos, clear_screen
-
clear_eol...
-
close
-
close(+ストリーム)...
-
コメント
-
comment...
-
compare
-
compare(-比較,+項1,+項2)...
-
項の比較
-
以下の組み込み述語は、項の比較を行います。X,Yはどんな項でもよく、数値も出されません。...
-
値の比較
-
以下の組み込み述語は、値の比較を行います。引数 X,Yは、計算式でなければならず、比較述語によって評価されます。...
-
compiles
-
compiles(+ファイル名)...
-
concat
-
concat(+コンカットリスト,-アトム)...
-
連言(conjunction)
-
2つのゴ−ルの連言(論理積AND)は、ゴ−ルの間にコンマオペレ−タ (,/2) を置くことによって実現されます。連言は、両方のゴ−ルが成功した場合にのみ成功します。...
-
consult
-
consult(+ファイル名)...
-
コントロールスタック(control stack)
-
このスタックは、選択点や節の変数の環境についての制御情報を保持しています。バックトラックが起きると、コントロ−ルスタックは減ります。...
-
データの型変換(conversion)
-
以下の述語は、IF/Prologのデ−タの型変換を行います。...
-
copy_term
-
copy_term(+入力項,-出力項)...
-
correct
-
correct/0は、edit/0に類似しています。違いは、correctが対称とするファイルを自動的に決定するという点です。直前にコンサルトあるいはリコンサルトされたファイルが、そのエラーメッセージや警告を含めた形で編集されます。correctは、エラーメッセージがない場合に失敗します。通常IF/Prologの起動時に、複数のファイルをコンサルトするように指定できます(IF/Prologのパラメータ -c あるいは -cf を使用して下さい)。...
-
cpu時間
-
経過したcpu時間(単位は秒)は、Xに単一化されます。経過時間は、オペレ−ションの前後の時刻を調べることによって計算できます。...
-
#current_predicate, #current_atom, current_language
-
# current_predicate(-ロード元,-関数子,-引数の数)...
-
!(カット)
-
親ゴ−ルが実行を開始した時点以降のすべての選択点をカットします。カットは、親ゴ−ルのすべての節に作用します。...
-
データベース(database)
-
IF/Prologによって記憶され、アクセスされる事実とル−ルの集合をデ−タベ−スと呼びます。...
-
debug, nodebug, debug_goal
-
debug...
-
debug_mode
-
debug_mode(+関数子,+引数の数,-旧スイッチ,+新スイッチ)...
-
decompcons
-
decompcons(+文字列_表現,-文字リスト)...
-
指令(directives)
-
指令(directive)は、その場で実行されるべきインタプリタやコンパイラに対する命令で、読み込みと同時に実行されます。これらはコンサルトされたファイル、あるいはコンパイルすべきファイル中に置くことができます。...
-
選言(disjunction)
-
2つのゴ−ルの選言(論理和OR)は、ゴ−ルの間にセミコロン「;」を入れることで表されます。...
-
display
-
display(+項)...
-
編集(edit)
-
edit...
-
終了(end)
-
end/0はインタプリタレベルにある場合に、IF/Prologのセッションを終わらせます。新しいインタプリタに入るのにbreakを使っている場合には、endによって前のレベルに戻ります。これは、bye/0と等価です。...
-
end_of_file文字
-
ファイルの終了は、文字通り"end_of_file."と入力することによって設定されます。IF/Prologは、end_of_file以後は何も読み込みません。IF/Prologは、end_of_file文字のASCII値としてASCII 26を使用します。...
-
equiv_char, image_length, byte_length
-
equiv_char(+ベース,-旧リスト,+新リスト)...
-
例外処理(exceptions)
-
IF/Prologは、例外処理を容易に行うための汎用的なメカニズムを備えています。...
-
error_protect, exception, exception_handler
-
error_protectは、call/2と同様に「ゴール」を実行しますが、これはユ−ザ定義のエラ−保護のもとで行われます。「ゴール」の実行中に例外やエラ−が生じると、関連する例外メッセ−ジが「例外処理」の最初の引数に単一化され、「例外処理」が実行されます。...
-
exists
-
exists(+ファイル名,+ファイル許可)...
-
exit
-
exit(+返り値)...
-
expand_term, phrase(+ゴール,?リスト)
-
expand_term(+入力項,-出力項)...
-
?- export, ?- common, ?- import, ?-hidden
-
?- export(+述語リスト)...
-
事実(fact)
-
事実は、対象物やそれらの関係を宣言します。証明すべきボディ節がないので、その真偽は他のどの節とも関係がありません。...
-
fail
-
この述語は、常に失敗します。true/0は、常に成功します。...
-
filepos, files, flush, reset_streams
-
filepos(-行番号)...
-
findall
-
findall(+テンプレート,+ゴール,-解答リスト)...
-
float_format
-
float_format(-旧フォーマット,+新フォーマット)...
-
# for
-
# for(+初期値_式,-カウンタ,+最終値_式)...
-
functor
-
functor(+複合項,-関数子,-引数の数)...
-
gc
-
gc/0は、スタックに対してIF/Prologのガ−ベッジ・コレクタを呼び出します。これは、ある種のアルゴリズム中の適切な地点で使うと便利です。通常ガ−ベッジ・コレクションは、スタックのメモリ量が少なくなった時にPrologが自動的に行います。...
-
get, get0, get_until
-
get(-表示文字コード)...
-
getchar
-
getchar(+文字列_式,+位置_式,-文字)...
-
getenv, get_home, get_last, move_cursor
-
getenv(+環境変数名,-環境変数値)...
-
get_global, # global_variable
-
get_global(+グローバル変数名,-項)...
-
ゴール(goal)
-
IF/Prologは、ゴ−ルを満たそうとします。ゴ−ルは以下のようなものです。...
-
文法規則(grammar rules)
-
文法規則は以下のような記述をPrologの規則や事実に変更します。...
-
リストの先頭(head of list)
-
リストの先頭とは、リストの最初の要素です。これは、以下の例のようにしてアクセスすることができます。...
-
節のヘッド(head of clause)
-
先頭 :-ボディ. ...
-
help
-
help...
-
ifprolog
-
ifprolog [システムパラメタ] [ユーザパラメタ]...
-
ifsem
-
ifsem [パラメタ] ファイル...
-
include
-
include(+ファイル名)...
-
index
-
index(+文字列_式,+副文字列_式,-位置)...
-
入力ストリーム(input stream)
-
IF/Prologは、現在入力ストリ−ムと標準入力ストリ−ムを維持しています。標準入力は、'user'と呼ばれます。 ...
-
インタプリタレベル(interpreter level)
-
IF/Prologを起動させると、インタプリタレベルに入ります。プロンプト"?-"は、インタプリタレベルにいるということを示しています。プロンプトで入力されるゴ−ルは、ただちに実行されます。...
-
is
-
-結果 is +計算式...
-
length, #reverse
-
length(+リスト,-長さ)...
-
list_mode, listing
-
list_mode(+関数子,+引数の数,-旧スイッチ,+新スイッチ)...
-
リスト(lists)
-
リストは順序づけられた要素の並びで、その長さは任意です。リストの要素(引数)は、アトムや複合項、その他のどんな項であってもよく、他のリストも含みます。...
-
load, loaded
-
load(+ファイル名)...
-
localtime
-
localtime(+時刻,-年,-月,-日,-曜日,-年累積日数,-時,-分,-秒)...
-
ループ(loops)
-
IF/Prologにおいてル−プを作るには2通りの方法があります。再帰的にプログラムを作るか、あるいはル−プ機構としてバックトラックを使う方法です。...
-
lower_upper, national_letters
-
lower_upper(+小文字_列,-大文字_列)...
-
make_atom, make_number
-
make_atom(+文字列_式,-アトム)...
-
match, # match
-
match(+パターン,+アトム)...
-
# member
-
# member(?要素,?リスト)...
-
modify_mode
-
modify_mode(+関数子,+引数の数,-旧スイッチ,+新スイッチ)...
-
?- module, ?- module_body
-
?- module(+モジュール名)...
-
name
-
name(+アトム,-文字コードリスト)...
-
nl
-
nl...
-
:- nonotify, nonotify
-
:- nonotify...
-
not
-
not(+ゴール)...
-
number
-
number(+数字,-文字コードリスト)...
-
once
-
once(+ゴール)...
-
オペレータ(operator)
-
IF/Prologでは、オペレ−タは不可欠なものではないということに注意して下さい。オペレ−タは、構文をわかりやすくするために使われます。以下の2つの等価な項のうち、最初の方が簡単でわかりやすくなっています。...
-
op, # current_op
-
op(+優先順位,+演算子分類,+演算子リスト)...
-
outpos, outtab
-
outpos(-列)...
-
出力ストリーム(output stream)
-
IF/Prologは、現在エラ−ストリ−ムや標準エラ−ストリ−ムと同様に、現在出力ストリ−ムや標準出力ストリ−ムを維持します。標準出力は'user'と呼ばれ、標準エラ−は'trace'と呼ばれます。...
-
program_parameters, system_parameters, user_parameters
-
program_parameters(-パラメータリスト)...
-
parse_atom
-
parse_atom(+アトム,+位置_式,-構文解析された項,-変数リスト)...
-
parse_position
-
parse_position(-次の位置)...
-
predicate, predicate_mode
-
predicate(+述語リスト)...
-
predicate_type
-
predicate_type(+関数子,+引数の数_式,-述語の分類)...
-
print
-
print(+ストリーム,+フォーマット,[+項,...])...
-
手続き(procedure)
-
手続き(IF/Prologでは"述語"の同義語)は、同じ関数子名と同じ引数の数を持つ、節の集まりです。そのため、組み込み述語match/2とmatch/3に対する節は、2つの違う手続きになります。"手続き"という名称は、述語の手続き的意味を強調した言い方です。...
-
program
-
program/0はユ−ザによって定義されていれば、IF/Prologシステムによって最初に実行される述語です。...
-
# prolog_flag
-
# prolog_flag(+フラグ,-旧スイッチ,+新スイッチ)...
-
prolog_library
-
prolog_library(+ディレクトリ名)...
-
prolog_system, prolog_version, proroot
-
prolog_system(-計算機名)...
-
put
-
put(+文字コード_式)...
-
put_byte, get_byte
-
put_byte(+コード式)...
-
raise_error
-
raise_error...
-
read, read_term
-
read(-項)...
-
read_error, report_read_error
-
read_error(-位置,-エラーコード)...
-
reconsult(+ファイル名)
-
reconsult/1はインタプリタに、「ファイル名」に含まれているプログラムを読み込むように指示します。システムは始めに「ファイル名」を探し、次に「ファイル名」.proを探します。consult/1と異なる点は、リコンサルトされたファイルで定義されている手続きに対して、デ−タベ−ス上に同じ手続きがある場合、その定義をファイルに含まれる節による定義で置き換えてしまう点です。このようにreconsult/1は、retractやassert_を使わずに、また、最初からやり直してプログラムを構成している全てのファイルをコンサルトしたりせずに、1つ、あるいは複数の述語を"修正"することができます。...
-
# repeat
-
repeat/0は、常に成功する組み込み述語です。"fail"の後、IF/Prologは最後に成功した節までバックトラックをして戻り、別の解を満たそうと試みます。repeatが手続き中で最後に成功した節であった場合には、その結果として"無限個の解"を持つことになり、バックトラックが無限に繰り返されることになります。repeatは、次の様な節で定義されたように動きます。...
-
#retract
-
#retract(?節)...
-
retractop
-
retractop(+優先順位,+演算子分類,+演算子リスト)...
-
save_system, save_module
-
save_system...
-
see, seeing, seen
-
see(+ファイル名)...
-
set_global
-
set_global(+グローバル変数名,+項)...
-
set_home, setoutpos, setupterm
-
set_home(+行_式,+列_式)...
-
signal, signal_handler, alarm
-
signal(+シグナル,-旧スイッチ,+新スイッチ)...
-
skip
-
skip(+文字コード_式)...
-
sort, keysort
-
sort(+未整列リスト,-整列済リスト)...
-
spy
-
spy(+ゴール,+ポート) :- 条件....
-
dbsize, ssize, gused, dbused, tused, lused
-
dbsize ssize gused...
-
statistics
-
statistics/0...
-
open, close, stream_control, #current_stream, link_stream
-
open(+論理名,+汎ストリーム(+物理名),[+オプション,...])...
-
文字列(strings)
-
Prologでは文字列は、文字コードのリストとして表現されます。文字列がダブルクォ−トで囲まれている場合には、その文字列は文字コ−ドのリストに変換されます。...
-
複合項(structures)
-
IF/Prologでは複合項は、その関数子と引数を指定することによって書かれます。この引数は複合項でありえます。関数子は開き括弧"("の直前に書きます。引数は括弧で囲まれていて、コンマで分けられています。引数は、Prologのどんな項でもかまいません。...
-
subatomic
-
subatomic(+文字列_式,+位置_式,+長さ_式,-副文字列)...
-
sum, inc
-
sum(?計算式1,?計算式2,?計算式3)...
-
symbol
-
symbol(+シンボル,-モジュール,-名前)...
-
計算式の構文(syntax of arithmetic expression)
-
計算式は、Prologの項のサブクラスです。オペレ−タの使用を含めた完全なPrologの構文を使って、計算式を書くことができます。式は、特定の述語によってのみ評価されます。ほとんどの述語は、式をPrologの標準的な項として扱います。式は、以下のいずれかです。...
-
構文チェッカー(syntax checker)
-
構文上の誤りは、consult/reconsultを入力する際と、組み込み述語read/1,/2を用いて項を読み込みをする際とに検出されます。構文に従わない節や指令や項は読み込まれるとすぐに端末に表示されます。...
-
syntax_error
-
syntax_error(+エラーコード,-メッセージ)...
-
項の構文 (Syntax of terms)
-
全てのPrologの項は以下のような正規文法を用いて表現できます。...
-
system
-
system...
-
system_date, system_time
-
system_date(-日付)...
-
system_predicate
-
system_predicate(+関数子, +引数の数)...
-
tab
-
tab(+カウンタ_式)...
-
tell, telling, told
-
tell(+ファイル名)...
-
項(term)
-
項は、定数、変数、あるいは複合項のいずれかです。...
-
X is time
-
Xは、グリニッジ標準時、1970年1月1日0:00:00からの経過秒数を表す整数に単一化されます。...
-
trace, notrace, trace_mode, trace_goal
-
trace...
-
trace, tracing, traced
-
trace(+ファイル名)...
-
トレイル(trail)
-
トレイルは、バックトラックの時に解放されなければならない、変数の割り当てについての情報を保持しているスタックです。このため、このスタックは実行が続けられると増大し、バックトラックが起きると減少します。...
-
true
-
常に成功します。fail/0は、常に失敗します。...
-
tty_size
-
tty_size(-行,-列)...
-
type_of, atom, nonvar, atomic, numeric, digit, realn, integer, struct, letter, var
-
type_of(+項, ?型)...
-
未定義の述語(undefined_predicate)
-
デ−タベ−ス中に節がない述語を呼び出すと、例外メッセ−ジ"undefined_predicate"が出されます。...
-
?項1 = ?項2, +項1 \= +項2
-
これまで非公式に述べてきましたが、解探索の正式な定義においてマッチングの過程を単一化といいます(/ClocMel/を参照して下さい)。これは、2つの項が事実上同一になるまで一致させようという過程です。...
-
?複合項 =.. -Univリスト, -複合項 =.. ?Univリスト
-
オペレ−タ=../2は、歴史的な理由でunivと呼ばれます。...
-
unload
-
unload(+ファイル名)...
-
unset_global
-
unset_global(+グローバル変数名)...
-
user
-
組み込み入/出力述語を使う場合、標準入/出力ストリ−ム(通常は端末のキ−ボ−ドと画面)の同義語です。これらのストリ−ムは閉じることはできません。...
-
変数(variables)
-
変数は、頭文字が大文字か下線文字"_"であるという構文上の規則によって、他の項と区別できます。以下に変数の例を上げておきます。...
-
write
-
write(+項)...
|
|
|