小编Waa*_*ten的帖子

将Prolog仿函数转换为带差异列表的仿函数

我正在为Prolog(SWI)做作业,但无法弄清楚如何完成这项工作:

我有仿函数:

palindrome([]).
palindrome([_]).
palindrome([A|T]) :-
      append(Middle,[A],T),
      palindrome(Middle).
Run Code Online (Sandbox Code Playgroud)

它告诉给定的列表是否是回文.

对于我的作业,我必须编写一个palindrome/2没有append/3和有差异列表的仿函数.

我知道差异列表是一种形式[Y|X]-X,但我不明白如何使用它以及如何替换append仿函数.

有人可以向我解释一下吗?

prolog palindrome dcg difference-lists

4
推荐指数
1
解决办法
661
查看次数

标签 统计

dcg ×1

difference-lists ×1

palindrome ×1

prolog ×1