Kako ukloniti duplikate u Prologu

click fraud protection

Prolog je deklarativni programski jezik koji se obično koristi u istraživanju umjetne inteligencije i lingvistike. Za razliku od uobičajenih proceduralnih jezika, većina Prolog programa definirana je kao niz pravila i jednadžbi, a ne kao niz koraka. Sljedeći kod opisuje postupak uklanjanja duplikata s popisa u Prologu.

Korak 2

Upišite kod između kosih crta (ostavljajući same kose crte van):

/ % remove_dups(+List, -NewList): % Novi popis je vezan za Popis, ali s uklonjenim dupliciranim stavkama. remove_dups([], []).

remove_dups([Prvi | Odmor], NoviOdmor) :- član (Prvi, Odmor), remove_dups (Odmor, NoviOdmor).

remove_dups([Prvi | Odmor], [Prvi | NoviOdmor]) :- ne (član (Prvi, Ostalo)), remove_dups (Odmor, NoviOdmor). /

Funkcija "remove_dups" definirana je kao niz od tri pravila. Prvo pravilo ("remove_dups([],[].)") navodi da ako je popis prazan, ništa ne treba raditi; funkcija bi se trebala jednostavno vratiti. Drugo pravilo navodi da ako se prva stavka na popisu pojavi bilo gdje drugdje na popisu, onda je treba ukloniti (budući da je duplikat) i obrada bi se trebala nastaviti korištenjem ostatka popisa ponovnim pozivanjem funkcije remove_dups s prvom stavkom na popisu prekinuo. Završno pravilo navodi da ako prvi član popisa nije prisutan drugdje na popisu, treba ga zadržati i nastaviti obradu.

Techwalla može zaraditi naknadu putem pridruženih veza u ovoj priči.