【问题标题】:prolog trace how to useprolog跟踪如何使用
【发布时间】:2012-07-06 02:39:29
【问题描述】:

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

length1([],0).
length1([_X|Xs],N):- length1(Xs,N1), N is N1+1.

我跟踪程序:

?- 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) ... 我做错了什么?

【问题讨论】:

    标签: prolog trace


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      编译你的文件后(例如 [length_program]. )你需要写跟踪。 然后运行你的命令,但我猜你错过了拼写代码。您已将 pred 定义为 length1 ,因此您需要在跟踪之后准确地放置 length1

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-30
        相关资源
        最近更新 更多