我正在为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仿函数.
有人可以向我解释一下吗?