ISO標準への準拠の改善
算術関連:
ceil(切り上げ): 整数を返します。(以前は浮動小数点数)
floor(切り下げ): 整数を返します。(以前は浮動小数点数)
ceiling が設けられました。 (ceilと等価)
** が実装されました。(pow (冪乗)と等価)
詳細は、以下にあります。
Manual/Reference/Predicates/arithm_eval/is/home_jp.html
コンパイラ:
minervacに、"-dynamic"オプションができました。
このオプションでコンパイルすれば、
ファイルの述語のすべてを動的述語としてコンパイル
します。
これにより、生成されたコードの効率は減少することがありますが、
コンパイルされたファイルが、主に事実を含んでいた場合には、
効率があがります。
"-dynamic"オプションを使ってコンパイルされたファイルは、
unload/1で、削除することができます。
unload(+Package)
詳細は、以下にあります。
Manual/Reference/Predicates/clause_creat_destruct/unload/home_jp.html
unload/1で削除できうるファイルの候補は、以下で与えられます。
loadad(?Package)
loaded(?Package,-PredicateList)
詳細は以下にあります。
Manual/Reference/Predicates/clause_creat_destruct/loaded/home_jp.html
指令:
コンパイラは、以下の指令を認識できるようになりました。
:- initialization(Goal). % :- init(Goal). と等価
:- ensure_loaded(File). % :- init(load(File). と等価
% load/1 は一度に最高1ファイルしかロードしません。
:- import(Package). % ":- package(Package)." は、これに置換えねばなりません。
詳細は以下にあります。
Manual/Reference/Directives/home_jp.html
パーサー:
ISO標準に従い、"'"のキャラクターコードは、0'''で示すことができるように
なりました。
(以前は、0'\'のみ。)
述語:
current_predicate/1が加わりました。
ISO標準とは異なり、この述語は、引数に変数を許していません。
abolish/1は、標準に従うようになりました。
つまり、ある述語に対してabolish/1をしたあとで、その述語を呼び出せば
未定義述語の例外処理が出されます。
retract_all/1は、以前のabolish/1に置換わりました。
つまり、全ての節は削除されますが、動的には定義されたままです。
呼び出した場合には、失敗が戻されます。例外処理はされません。