请解释递归序言程序运行的顺序

问题描述 投票:0回答:0

我是 prolog 的新手,想知道是否有人可以解释以下过程,因为我很难理解执行此过程时 prolog 遵循的分步过程。我想知道如何阅读递归序言程序中运行的顺序。

如果我们看下面的例子,我们可以看到回文过程在带有变量 H1 的主体中被再次调用,我听说这是由该过程完成的,直到它遇到基本情况,它从基本情况开始工作案例来产生结果,但我真的很难列出如何从第一次调用中获得结果的步骤。

palindrome([]).
palindrome([_]).

palindrome([First|Rest]):-
    append(H1,[First],Rest),
    palindrome(H1).

为什么 append 中的第二个参数( [First] )有 [ ] 并且在运行回文过程时它是否首先在内部完成回文仿函数然后重试主回文仿函数?任何帮助将不胜感激。

prolog swi-prolog prolog-toplevel
© www.soinside.com 2019 - 2024. All rights reserved.