小智 44
我假设您正在以交互方式使用swi并尝试输入事实会给您一个错误,如下所示:
1 ?- like(x, y).
ERROR: toplevel: Undefined procedure: like/2 (DWIM could not correct goal)
Run Code Online (Sandbox Code Playgroud)
由于数据库中不存在这一事实.如果是这种情况,请先尝试断言事实:
2 ?- assert(like(x,y)).
true.
Run Code Online (Sandbox Code Playgroud)
然后你可以尝试:
3 ?- like(x, y).
true.
Run Code Online (Sandbox Code Playgroud)
这次查询成功,因为事实存在于数据库中.
更好的方法可能是将您的子句写入文件然后查阅它们.Swi prolog有一个类似emacs的编辑器,您可以通过键入来调出
emacs.
Run Code Online (Sandbox Code Playgroud)
在提示.或者使用您自己的编辑器然后查阅该文件.Swi prolog附带了许多可能有用的图形工具; 请查看手册以获取更多详细信息.