prologpalindromedcg

Prolog - Palindrome Functor


I am trying to write a predicate palindrome/1 in Prolog that is true if and only if its list input consists of a palindromic list.

for example:

?- palindrome([1,2,3,4,5,4,3,2,1]).

is true.

Any ideas or solutions?


Solution

  • A palindrome list is a list which reads the same backwards, so you can reverse the list to check whether it yields the same list:

    palindrome(L):-
      reverse(L, L).