Turbo Prolog执行命令

时间:2017-06-05 13:53:57

标签: recursion prolog turbo-prolog

我试图理解为什么我得到的结果是我。让我们说这是代码和结果:

prolog

很抱歉,如果这是微不足道的,但网上没有太多关于此的消息......如果d(3)的输出对我有意义,那么e(3)根本就没有。 为什么在这样的情况下移动写入会颠倒顺序?
我猜这与递归有关,但我仍然对此无能为力。

1 个答案:

答案 0 :(得分:2)

这是因为在第一种情况下:你首先写,然后递归调用d(N1),所以例如d(3)write 3然后call d(2)等... < / p>

在第二种情况下:您先拨打e(N1),然后编写并更改订单,因为例如e(1)会调用e(0),这将调用e(-1),这将成功然后e(0)write 0然后e(1)write 1等等......