1. Камеры
  2. Автоаудио и электроника
  3. Домашнее аудио
  4. Персональное аудио
  5. Телевизоры
  6. Умный дом
  >> Электронные технологии >  >> Умный дом >> Умная жизнь

Как удалить дубликаты в Прологе

Prolog — это декларативный язык программирования, обычно используемый в исследованиях искусственного интеллекта и лингвистики. В отличие от более распространенных процедурных языков, большинство программ на Прологе определяются как ряд правил и уравнений, а не как ряд шагов. Следующий код описывает процесс удаления дубликатов из списка в Прологе.

Шаг 1

Откройте текстовый редактор, например Блокнот, и сохраните файл под именем «remove_dups.pl».

Шаг 2

Введите код между косыми чертами (без косых черт):

/ % remove_dups(+List, -NewList):% Новый список привязан к списку, но с удаленными повторяющимися элементами. remove_dups([], []).

remove_dups([First | Rest], NewRest):- member(First, Rest), remove_dups(Rest, NewRest).

remove_dups([First | Rest], [First | NewRest]):– not(member(First, Rest)), remove_dups(Rest, NewRest). /

Функция «remove_dups» определяется как набор из трех правил. Первое правило ("remove_dups([],[].)") указывает, что если список пуст, ничего делать не нужно; функция должна просто вернуться. Второе правило указывает, что если первый элемент в списке появляется где-либо еще в списке, то он должен быть удален (поскольку это дубликат) и обработка должна продолжаться с использованием остальной части списка путем повторного вызова функции remove_dups с первым элементом. в списке опущены. Последнее правило указывает, что если первый элемент списка отсутствует где-либо еще в списке, он должен быть сохранен, а обработка должна быть продолжена.

Шаг 3

Сохраните свою работу, нажав «Ctrl» и «S» вместе.

Совет

В то время как такие языки, как C и Java, обычно решают проблемы с помощью итерационных циклов, декларативные и функциональные языки, такие как Prolog, обычно решают проблемы рекурсивно или путем многократного вызова одной и той же функции для все меньшего и меньшего набора общих данных. Некоторые проблемы гораздо проще решить с помощью рекурсии, хотя программистам, привыкшим использовать для решения проблем только итерационные циклы, может быть сложно научиться этому.


  1. Как удалить дубликаты С iPhone
  2. Как удалить телефон из списка
  3. Как удалить мой номер телефона из списка вызовов
  4. Как удалить Wuauclt EXE
  5. Как удалить файлы DAT