Ограничение на добавление в список повторяющихся элементов - Prolog

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

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

Здравствуйте. Преподаватель дал задачу изменить программу так, чтобы когда использовалась первая функция(при нажатии цифры 1), то в список не добавлялись повторяющиеся элементы(числа). Как я понял, сначала мы должны записать в список любые числа, не зависимо от того, повторяются они или нет, а затем уже провести некую проверку на повторяющиеся числа и удалить их, оставив только одно. Вот только я так и не понял как лучше сделать: - чтобы число после считывания сразу проверялось на наличие подобного ему в списке - или все-таки проверять весь список после окончания считывания и удалять/заменять одинаковые числа до тех пор, пока не останется только одно. На функции insert я уже запутался, не знаю как раскрутить все это дело( Использую Visual Prolog 5.2 (в универе стоит такая же версия).

Очень хотелось бы получить ответ до завтрашнего утра, так как мне потом придется долго ждать до следующей сдачи!

. Код:

Решение задачи: «Ограничение на добавление в список повторяющихся элементов»

textual
Листинг программы
create_list(L, NewL) :- 
        readint(X), X<>'\27',  % <--- И это работает? Надо будет проверить..
        !, % <--- в любом случае здесь необходимо отсечение, я только что об этом писал
        insert(X, L, OtherL), 
        create_list(OtherL, NewL).
create_list(L, L).
 
insert(X, L, L) :-
        member(X, L),
        !.
insert(X, L, [X|L]).

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


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

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

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