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. Как удалить дубликаты из Palm Treo 700wx
  2. Как удалить канал из DVR избранное
  3. Как удалить дубликаты С iPhone
  4. Как удалить дубликаты Ipod
  5. Как удалить дубликаты С iPhone