如何在prolog中检查回文?

时间:2017-01-17 20:52:34

标签: prolog

我对Prolog如何运作有疑问。我从未学过Prolog,但现在是时候面对那种语言了。我搜索了palindrome check的一段代码,我发现了这个

pal([]).
pal([_]).
pal(Pal) :-
   append([H|T], [H], Pal),
   pal(T).

例如,我致电pal([abccba]).pal([abcdba]).。我理解它是如何工作的(它采用头部和尾部 - 1并将头部贴在尾部的末端)。但是,我不明白为什么在使用pal(T)调用[c, c]时结果为真,但是当使用[c, d]调用append时,它会在{{1}上失败}}?

任何人都可以向我解释它是如何运作的吗?

0 个答案:

没有答案