From ok@atlas.otago.ac.nz  Mon May 15 04:13:25 2000
Received: from atlas.otago.ac.nz (atlas.otago.ac.nz [139.80.32.250])
	by swi.psy.uva.nl (8.9.3/8.9.3) with ESMTP id EAA16350
	for <prolog@swi.psy.uva.nl>; Mon, 15 May 2000 04:13:23 +0200 (MET DST)
Received: (from ok@localhost)
	by atlas.otago.ac.nz (8.9.3/8.9.3) id OAA08540;
	Mon, 15 May 2000 14:13:31 +1200 (NZST)
Date: Mon, 15 May 2000 14:13:31 +1200 (NZST)
From: "Richard A. O'Keefe" <ok@atlas.otago.ac.nz>
Message-Id: <200005150213.OAA08540@atlas.otago.ac.nz>
To: g8z@yahoo.com, prolog@swi.psy.uva.nl
Subject: Re:  palindrome problem

	I want to define the predicate palindrome(Base,Result), assuming
	that Result is always even length list. For example,
	
	palindrome([m,a,d],R). 
	R = [m.a.d.d.a.m] ;
	
	palindrome(B,[n,i,s,s,i,n]). 
	B = [n,i,s] ;
	
I am going to indulge in one of my favouriate resonses:
I'm going to provide a correct answer such that someone who
can explain it could have solved the problem anyway.

    palindrome(B, R) :-
	palindrome(B, R, []).

    palindrome([], R, R).
    palindrome([X|B], [X|R], T) :-
	palindrome(B, R, [X|T]).

