Возврат правильного списка - Prolog
Формулировка задачи:
есть код
этот кусок обрабатывает ввод с клавиатуры типов пролога, сохранение в список, и проверку, чтоб в списке не было нестандастных типов.
потом правильный список должен вернуться обратно в программу, но возвращается тот список, которым я вводил первым. ВОПРОС, не подскажите, как сделать так, чтоб возвращался последний введенный мной список?
по сути проблема в том, что после того, как я наконец то введу правильный список, программа рекурсивно откатиться к самому первому, и проблема только в том, как правильно вставить предикат отсечения.
Решение задачи: «Возврат правильного списка»
textual
Листинг программы
список_типов([H|T]):- readln(H),!, список_типов(T). список_типов([]). не_стандартный_тип(H):- H<>"symbol", H<>"char", H<>"string", H<>"real", H<>"integer",write("проверили типы"),nl. %главный предикат обработки правильный_список_типов(Список):- список_типов(Список),write("после списка типов"),nl, проверка_списка(Список),write(Список). %рекурсивно проверяю, чтоб в списке не было ни одного не стандартного типа проверка_списка([H|T]):- not(не_стандартный_тип(H)),write("в проверка"),nl, проверка_списка(T),write("после проверка типа"),nl. проверка_списка([]):-write("конец списка"),nl. проверка_списка(Список):- bound(Список), write("Найден нестандартный тип, повторите ввод аргументов!\n"), правильный_список_типов(_),write("неправильный тип"),nl.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д