>> Elettronica Tecnologia >  >> Casa intelligente >> Vita intelligente

Come rimuovere i duplicati in Prolog

Prolog è un linguaggio di programmazione dichiarativo comunemente usato nell'intelligenza artificiale e nella ricerca linguistica. A differenza dei più comuni linguaggi procedurali, la maggior parte dei programmi Prolog sono definiti come una serie di regole ed equazioni, piuttosto che come una serie di passaggi. Il codice seguente descrive il processo per rimuovere i duplicati da un elenco in Prolog.

Passaggio 1

Apri un editor di testo, come Blocco note, e salva il file con il nome "remove_dups.pl."

Passaggio 2

Digita il codice tra le barre (lasciando fuori le barre stesse):

/ % remove_dups(+List, -NewList):% New List è associato a List, ma con elementi duplicati rimossi. remove_dups([], []).

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

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

La funzione "remove_dups" è definita come una serie di tre regole. La prima regola ("remove_dups([],[].)") specifica che se l'elenco è vuoto, non dovrebbe essere fatto nulla; la funzione dovrebbe semplicemente tornare. La seconda regola specifica che se il primo elemento nell'elenco appare in un altro punto dell'elenco, allora dovrebbe essere rimosso (poiché è un duplicato) e l'elaborazione dovrebbe continuare utilizzando il resto dell'elenco chiamando nuovamente la funzione remove_dups con il primo elemento nell'elenco lasciato fuori. La regola finale specifica che se il primo membro dell'elenco non è presente altrove nell'elenco, deve essere conservato e l'elaborazione deve continuare.

Passaggio 3

Salva il tuo lavoro premendo "Ctrl" e "S" insieme.

Suggerimento

Mentre linguaggi come C e Java di solito risolvono problemi utilizzando cicli iterativi, linguaggi dichiarativi e funzionali come Prolog di solito risolvono problemi in modo ricorsivo o chiamando ripetutamente la stessa funzione su un insieme sempre più piccolo di dati totali. Alcuni problemi sono molto più facili da risolvere con la ricorsione, anche se può essere difficile da imparare per i programmatori abituati a utilizzare solo cicli iterativi per risolvere i problemi.


  1. Come rimuovere i duplicati da un Palm Treo 700wx
  2. Come rimuovere un canale da un Preferito DVR
  3. Come rimuovere i duplicati da un iPhone
  4. Come rimuovere i duplicati iPod
  5. Come rimuovere i duplicati da un iPhone
  6. Come rimuovere un telefono da un elenco