Je travaille sur mes devoirs pour Prolog (SWI) mais ne peut pas comprendre comment obtenir ce fait:Convertir foncteur Prolog à Functor avec une différence liste
Je foncteur:
palindrome([]).
palindrome([_]).
palindrome([A|T]) :-
append(Middle,[A],T),
palindrome(Middle).
qui indique si une liste donnée est un palindrome.
Pour mes devoirs je dois écrire un foncteur palindrome/2
sans append/3
et avec des listes de différence.
Je sais qu'une liste de différence est une forme de [Y|X]-X
, mais je ne comprends pas comment l'utiliser et comment cela peut remplacer le foncteur append.
Quelqu'un peut-il m'expliquer cela?
Ce que vous appelez "fonctor" est appelé "prédicat" dans Prolog. –