Определить, является ли заданный список палиндромом - Prolog

Узнай цену своей работы

Формулировка задачи:

Опишите функцию, определяющую является ли заданный список палиндромом.

Решение задачи: «Определить, является ли заданный список палиндромом»

textual
Листинг программы
domains
int=integer
intl=int*
 
predicates
 
app(intl,intl,intl)
rev(intl,intl)
cmp(intl,intl)
ispal(intl)
 
clauses
 
app([],X,X).
app([H|T],X,[H|R]) :- app(T,X,R).
 
rev([],[]).
rev([H|R],Q) :- rev(R,Z), app(Z,[H],Q).
 
cmp([],[]).
cmp([],[_|_]) :- fail.
cmp([_|_],[]) :- fail.
cmp([X|T1],[X|T2]) :- cmp(T1,T2).
cmp([X|_],[Y|_]) :- fail.
 
ispal(X) :- rev(X,RX), cmp(X,RX).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.75 из 5
Похожие ответы