首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >prolog trace如何使用

prolog trace如何使用
EN

Stack Overflow用户
提问于 2012-07-06 10:39:29
回答 2查看 28.1K关注 0票数 4

如何在跟踪prolog程序时进行第二步?例如,我想要跟踪以下简单的程序:

代码语言:javascript
复制
length1([],0).
length1([_X|Xs],N):- length1(Xs,N1), N is N1+1.

我跟踪程序:

代码语言:javascript
复制
?- trace,length([1,2,3],N).
Call: (7) length([1, 2, 3], _G231) ? 
Exit: (7) length([1, 2, 3], 3) ? creep
N = 3.

但正如我们所见,它立即给出了答案。但我认为它应该像Call:(8) ... Call:(9) ...一样,我做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-06 14:01:56

看看你的目标,你使用的是内置的length/2,而不是你自己的length1/2。内置的代码通常是无法追踪的。

票数 6
EN

Stack Overflow用户

发布于 2012-07-06 22:25:08

编译文件后(示例length_program。)您需要编写跟踪。然后运行您的命令,但我猜您没有拼写代码。您已经将pred定义为length1,因此需要在跟踪后精确地添加length1

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

https://stackoverflow.com/questions/11355151

复制
相关文章

相似问题

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