როგორ ამოიღოთ დუბლიკატები Prolog-ში

Prolog არის დეკლარაციული პროგრამირების ენა, რომელიც ჩვეულებრივ გამოიყენება ხელოვნური ინტელექტისა და ლინგვისტიკის კვლევებში. უფრო გავრცელებული პროცედურული ენებისგან განსხვავებით, Prolog პროგრამების უმეტესობა განისაზღვრება როგორც წესებისა და განტოლებების სერია, ვიდრე ნაბიჯების სერია. შემდეგი კოდი აღწერს პროლოგის სიიდან დუბლიკატების ამოღების პროცესს.

ნაბიჯი 2

აკრიფეთ კოდი შტრიხებს შორის (თვითონ დახრილები გამოტოვეთ):

/ % remove_dups(+List, -NewList): % New List არის მიბმული სიაში, მაგრამ ამოღებულია დუბლიკატი ელემენტები. remove_dups ([], []).

remove_dups([First | Rest], NewRest) :- წევრი (First, Rest), remove_dups (დასვენება, NewRest).

remove_dups([First | Rest], [First | NewRest]) :- არა (წევრი (პირველი, დასვენება)), remove_dups (დასვენება, NewRest). /

ფუნქცია "remove_dups" განისაზღვრება, როგორც სამი წესის სერია. პირველი წესი ("remove_dups([],[].)") განსაზღვრავს, რომ თუ სია ცარიელია, არაფერი არ უნდა გაკეთდეს; ფუნქცია უბრალოდ უნდა დაბრუნდეს. მეორე წესი განსაზღვრავს, რომ თუ სიაში პირველი ელემენტი გამოჩნდება სხვაგან სადმე სიაში, მაშინ ის უნდა მოიხსნას (რადგან ეს არის დუბლიკატი) და დამუშავება უნდა გაგრძელდეს სიის დარჩენილი ნაწილის გამოყენებით remove_dups ფუნქციის ხელახლა გამოძახებით სიის პირველ ელემენტთან ერთად დატოვებული. საბოლოო წესი განსაზღვრავს, რომ თუ სიის პირველი წევრი არ იმყოფება სიაში სხვაგან, ის უნდა იყოს შენახული და დამუშავება უნდა გაგრძელდეს.

Techwalla-მ შეიძლება მიიღოს კომპენსაცია ამ ისტორიის შვილობილი ბმულების მეშვეობით.

კატეგორიები

Ბოლო

როგორ გავაკეთოთ TM სიმბოლო

როგორ გავაკეთოთ TM სიმბოლო

საავტორო უფლებები, რეგისტრირებული სასაქონლო ნი...

როგორ აღვადგინოთ Temp ფაილი Word-ში

როგორ აღვადგინოთ Temp ფაილი Word-ში

Microsoft Word-ს აქვს ჩაშენებული ავტომატური შენ...

როგორ ამოიღოთ ყველა ჰიპერბმული Word დოკუმენტში

როგორ ამოიღოთ ყველა ჰიპერბმული Word დოკუმენტში

Microsoft Word 2013 ცნობს ტექსტს, რომელიც სტრუქ...