1. kamerák
  2. Car Audio & Electronics
  3. Home Audio
  4. Personal Audio
  5. TV-k
  6. Okos otthon
  >> Elektronikai Technológia Online >  >> Okos otthon >> Okos élet

Az ismétlődések eltávolítása a Prologban

A Prolog egy deklaratív programozási nyelv, amelyet gyakran használnak a mesterséges intelligencia és a nyelvészeti kutatásokban. Az elterjedtebb eljárási nyelvekkel ellentétben a legtöbb Prolog program szabály- és egyenletsorozatként van meghatározva, nem pedig lépések sorozataként. A következő kód azt a folyamatot írja le, amellyel eltávolítható a másolatok egy listáról a Prologban.

1. lépés

Nyisson meg egy szövegszerkesztőt, például a Jegyzettömböt, és mentse el a fájlt „remove_dups.pl” néven.

2. lépés

Írja be a kódot a perjelek közé (a perjeleket hagyja ki):

/ % remove_dups(+Lista, -ÚjLista):% Az új lista a listához van kötve, de az ismétlődő elemek eltávolítva. 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). /

A "remove_dups" függvény három szabályból álló sorozatként van definiálva. Az első szabály ("remove_dups([],[].)") meghatározza, hogy ha a lista üres, akkor semmit sem szabad tenni; a függvénynek egyszerűen vissza kell térnie. A második szabály azt határozza meg, hogy ha a lista első eleme bárhol máshol megjelenik a listában, akkor azt el kell távolítani (mivel ismétlődésről van szó), és a feldolgozásnak a lista többi részének kell folytatódnia a remove_dups függvény ismételt meghívásával az első elemmel. a kihagyott listában. A végső szabály előírja, hogy ha a lista első tagja nincs máshol a listában, akkor azt meg kell őrizni, és a feldolgozást folytatni kell.

3. lépés

Mentse el munkáját a "Ctrl" és az "S" együttes lenyomásával.

Tipp

Míg az olyan nyelvek, mint a C és a Java, általában iteratív ciklusok segítségével oldják meg a problémákat, a deklaratív és funkcionális nyelvek, mint például a Prolog, általában rekurzív módon oldják meg a problémákat, vagy ugyanazt a függvényt ismételten meghívják a teljes adat egyre kisebb halmazán. Néhány probléma sokkal könnyebben megoldható rekurzióval, bár nehéz lehet megtanulni a programozóknak, akik csak iteratív ciklusokat használnak a problémák megoldásához.


  1. Hogyan lehet eltávolítani másolatok a Palm Treo 700wx
  2. Hogyan lehet eltávolítani a csatorna a DVR Favorite
  3. Hogyan lehet eltávolítani másolatokat egy iPhone
  4. Hogyan lehet eltávolítani iPod másolatokat
  5. Hogyan lehet eltávolítani másolatokat egy iPhone