Prolog - Palindrome Functor

Amjad picture Amjad · Dec 29, 2011 · Viewed 17.6k times · Source

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?

Answer

gusbro picture gusbro · Dec 29, 2011

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).