Напишите предикат, предшествует/2, который берет два атома в качестве своих аргументов и успешно согласуется - Prolog
Формулировка задачи:
Напишите предикат, предшествует/2, который берет два атома в качестве своих аргументов и успешно согласуется, если первый из них в лексикографическом порядке предшествует второму.
Предикат предшествует(+X,+Y) должен иметь в качестве входных аргумента два атома (переменной аргумент не может быть, и аргументы не сводятся к одному символу). Примеры правильной работы:
?- предшествует (aaaazzzzzzzzzzzzzzz,aab).
Yes
?- предшествует (aaaazzzzzzzzzzzzzzz, aaaac).
No
?- предшествует(example,examples).
Yes
?- предшествует (example,bexamples).
No
Лексикографический порядок для атомов определяется так же как для строк в Паскале. Не используйте встроенный оператор сравнения @=< для атомов в Прологе.
Помогите пожалуйста решить данную задачу, пролог только начал изучать и логики в нем не вижу....
Код примерно такой, но не зависимо от введенных слов пишет false
Решение задачи: «Напишите предикат, предшествует/2, который берет два атома в качестве своих аргументов и успешно согласуется»
textual
Листинг программы
?- lx(`alpha`, `beta`). true. ?- lx(`beta`,`alpha`). false.
Объяснение кода листинга программы
- Задача состоит в написании предиката, который проверяет, что один атом предшествует другому.
- Предикат называется
precedes/2
. - Предикат принимает два аргумента -
X
иY
. - Если
X
предшествуетY
, то предикат возвращаетtrue
, в противном случае -false
. - В коде приведен пример использования предиката:
?- lx(
alpha,
beta).
- В этом примере предикат проверяет, что
alpha
предшествуетbeta
. - Так как в данном случае это условие выполняется, то предикат возвращает
true
. - Второй пример:
?- lx(
beta,
alpha).
- В этом примере предикат проверяет, что
beta
предшествуетalpha
. - Так как это условие не выполняется, то предикат возвращает
false
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д