Kako odstraniti dvojnike v Prologu

Prolog je deklarativni programski jezik, ki se pogosto uporablja v raziskavah umetne inteligence in jezikoslovja. Za razliko od pogostejših proceduralnih jezikov je večina programov Prolog opredeljena kot niz pravil in enačb, ne pa kot niz korakov. Naslednja koda opisuje postopek odstranjevanja dvojnikov s seznama v Prologu.

2. korak

Vnesite kodo med poševnice (poševnice pustite zunaj):

/ % remove_dups(+List, -NewList): % nov seznam je vezan na seznam, vendar z odstranjenimi podvojenimi elementi. odstraniti_dups([], []).

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

remove_dups([First | Rest], [First | NewRest]) :- ne (član (First, Rest)), remove_dups (Rest, NewRest). /

Funkcija "remove_dups" je definirana kot niz treh pravil. Prvo pravilo ("remove_dups([],[].)") določa, da če je seznam prazen, ni treba storiti ničesar; funkcija bi se morala preprosto vrniti. Drugo pravilo določa, da če se prvi element na seznamu pojavi kjer koli drugje na seznamu, ga je treba odstraniti (ker je dvojnik) in obdelava se mora nadaljevati z uporabo preostalega seznama s ponovnim klicem funkcije remove_dups s prvim elementom na seznamu končal. Končno pravilo določa, da če prvi član seznama ni prisoten drugje na seznamu, ga je treba obdržati in obdelavo nadaljevati.

Techwalla lahko zasluži odškodnino s pomočjo povezanih povezav v tej zgodbi.