首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Prolog:源文件中的子句不在一起

Prolog:源文件中的子句不在一起
EN

Stack Overflow用户
提问于 2013-05-04 19:46:24
回答 2查看 24.8K关注 0票数 27

我有一段代码:

% Family tree
female(pen).
male(tom).
male(bob).
female(liz).
female(pat).
female(ann).
male(jim).

parent(pam, bob).
parent(tom, bob).
parent(tom, liz).
parent(bob, ann).
parent(bob, pat).
parent(pat, jim).

我得到了这个错误:

Warning: Clauses of female/1 are not together in source-file
Warning: Clauses of male/1 are not together in source-file

此错误的用途是什么?

我的意思是,文件确实编译和运行得很好,我知道这个错误的含义。但是为什么呢?

这只是一个强制执行最佳实践的通知吗?

我对逻辑编程非常陌生。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-04 19:55:36

正确,这是一个强制最佳实践的警告,即在源文件中将所有相关子句放在一起。除此之外,只要源文件中子句的相对顺序不变,子句之间的接近程度就无关紧要。

票数 21
EN

Stack Overflow用户

发布于 2013-07-20 03:14:14

该警告鼓励最佳实践,并有助于发现拼写错误。下面是一个打字错误的例子:

small(ant).
small(fly).
small(molecule).

smell(sweet).
smell(pungent).
small(floral).

这个错误很难发现,但幸运的是编译器会发出警告:

Warning: /tmp/test.pl:7:
Clauses of small/1 are not together in the source-file

有了警告和一行错误,人们可以更快地找到并纠正打字错误。

ISO Prolog提供了discontiguous/1指令,以使特定谓词的此警告静默。请参阅规范的7.4.2.3节。它的用法如下:

:- discontiguous small/1.
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16373927

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档