次の構造の Prolog ファイルがあります。
% LIBRARY SECTION %
foo(X) :- bar(X);
baz(X).
% USER DATA SECTION %
% e.g. bar(charlie).
ファイルのユーザー データは、ユーザーが拡張できるように意図されていますが、デフォルトでは何も含まれていません。ただし、とが定義されていないため、これによりクエリfoo(X).
が失敗します。bar/1
baz/1
それらをプレースホルダー値 (つまりbar(none).
) で定義しようとしましたが、ユーザー データがファイルの末尾に追加されると、GNU Prolog は不連続な述語について文句を言います。
bar/1
andのダミー/プレースホルダー バージョンを定義して失敗せず、 and を含む他の行をファイルの末尾に追加できるようにする別の方法はbaz/1
ありfoo(X).
ますbar
かbaz
?