Добавление в базу экспертной системы - Prolog

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

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

Экспертная система. Имеется база животных, заданная в исходнике. Как добавить какое-то животное пользователю в эту базу? Например сначала ввести имя, а потом по очереди задавать те же вопросы, что есть в программе, например умеет ли летать или умеет плавать. Каким образом реализуется добавление?

Решение задачи: «Добавление в базу экспертной системы»

textual
Листинг программы
animal(Name):-animal(Name,Params),check(Params).
 
check([]).
check([p(A)|Tail]):-positive(A),check(Tail).
check([n(A)|Tail]):-negative(A),check(Tail).
check([is(A)|Tail]):-is(A),check(Tail).

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

  1. animal(Name):-animal(Name,Params),check(Params). - это определение функции animal/2, которая принимает два аргумента: Name и Params. Она рекурсивно вызывает саму себя с аргументами Name и Params, а затем вызывает функцию check/1 с аргументом Params.
  2. check([]). - это определение функции check/1, которая принимает пустой список в качестве аргумента и завершается успешно, не делая ничего.
  3. check([p(A)|Tail]):-positive(A),check(Tail). - это рекурсивный вызов функции check/1, который происходит, когда список Params начинается с p(A). Функция positive/1 проверяет, является ли A положительным, и если это так, то функция check/1 вызывается рекурсивно с аргументом Tail.
  4. check([n(A)|Tail]):-negative(A),check(Tail). - это рекурсивный вызов функции check/1, который происходит, когда список Params начинается с n(A). Функция negative/1 проверяет, является ли A отрицательным, и если это так, то функция check/1 вызывается рекурсивно с аргументом Tail.
  5. check([is(A)|Tail]):-is(A),check(Tail). - это рекурсивный вызов функции check/1, который происходит, когда список Params начинается с is(A). Функция is/1 проверяет, является ли A истинным, и если это так, то функция check/1 вызывается рекурсивно с аргументом Tail.

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


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

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

15   голосов , оценка 4.067 из 5