我有一个具有以下结构的 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
这样baz/1
就foo(X).
不会失败,并且其他包含bar
并且baz
可以添加到文件底部的行?