Напишите предикат, предшествует/2, который берет два атома в качестве своих аргументов и успешно согласуется - Prolog

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

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

Напишите предикат, предшествует/2, который берет два атома в качестве своих аргументов и успешно согласуется, если первый из них в лексикографическом порядке предшествует второму. Предикат предшествует(+X,+Y) должен иметь в качестве входных аргумента два атома (переменной аргумент не может быть, и аргументы не сводятся к одному символу). Примеры правильной работы: ?- предшествует (aaaazzzzzzzzzzzzzzz,aab). Yes ?- предшествует (aaaazzzzzzzzzzzzzzz, aaaac). No ?- предшествует(example,examples). Yes ?- предшествует (example,bexamples). No Лексикографический порядок для атомов определяется так же как для строк в Паскале. Не используйте встроенный оператор сравнения @=< для атомов в Прологе. Помогите пожалуйста решить данную задачу, пролог только начал изучать и логики в нем не вижу....
Листинг программы
  1. lex(Atom,Atom2) :- name(Atom,L),
  2. name(Atom2,L2),
  3. lx(L,L2).
  4. lx([],[]).
  5. lx([],_).
  6. lx([A|L],[B|L2]) :- A<B,!;
  7. A=:=B,
  8. lx(L,L2).
Код примерно такой, но не зависимо от введенных слов пишет false

Решение задачи: «Напишите предикат, предшествует/2, который берет два атома в качестве своих аргументов и успешно согласуется»

textual
Листинг программы
  1. ?- lx(`alpha`, `beta`).
  2. true.
  3.  
  4. ?- lx(`beta`,`alpha`).
  5. false.

Объяснение кода листинга программы

  1. Задача состоит в написании предиката, который проверяет, что один атом предшествует другому.
  2. Предикат называется precedes/2.
  3. Предикат принимает два аргумента - X и Y.
  4. Если X предшествует Y, то предикат возвращает true, в противном случае - false.
  5. В коде приведен пример использования предиката: ?- lx(alpha,beta).
  6. В этом примере предикат проверяет, что alpha предшествует beta.
  7. Так как в данном случае это условие выполняется, то предикат возвращает true.
  8. Второй пример: ?- lx(beta,alpha).
  9. В этом примере предикат проверяет, что beta предшествует alpha.
  10. Так как это условие не выполняется, то предикат возвращает false.

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


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

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

7   голосов , оценка 4.143 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы