كيفية إزالة التكرارات في Prolog

Prolog هي لغة برمجة تعريفية شائعة الاستخدام في أبحاث الذكاء الاصطناعي واللغويات. على عكس اللغات الإجرائية الأكثر شيوعًا ، يتم تعريف معظم برامج Prolog على أنها سلسلة من القواعد والمعادلات ، وليس كسلسلة من الخطوات. تصف التعليمة البرمجية التالية عملية إزالة التكرارات من قائمة في Prolog.

الخطوة 2

اكتب الكود بين الشرطات المائلة (مع ترك الشرط المائل خارجًا):

/٪ remove_dups (+ List، -NewList):٪ قائمة جديدة مرتبطة بالقائمة ، لكن مع إزالة العناصر المكررة. remove_dups ([] ، []).

remove_dups ([First | Rest] ، NewRest): - عضو (أول ، بقية) ، remove_dups (بقية ، NewRest).

remove_dups ([First | Rest] ، [First | NewRest]): - ليس (عضوًا (First ، Rest)) ، remove_dups (Rest ، NewRest). /

تُعرَّف وظيفة "remove_dups" على أنها سلسلة من ثلاث قواعد. تحدد القاعدة الأولى ("remove_dups ([]، [].)") أنه إذا كانت القائمة فارغة ، فلا ينبغي فعل أي شيء ؛ يجب أن تعود الدالة ببساطة. تحدد القاعدة الثانية أنه إذا ظهر العنصر الأول في القائمة في أي مكان آخر في القائمة ، فيجب إزالته (نظرًا لأنه مكررة) والمعالجة يجب أن تستمر في استخدام بقية القائمة عن طريق استدعاء وظيفة remove_dups مرة أخرى مع العنصر الأول في القائمة متروك مهمل. تحدد القاعدة النهائية أنه إذا لم يكن العضو الأول في القائمة موجودًا في أي مكان آخر في القائمة ، فيجب الاحتفاظ به ويجب أن تستمر المعالجة.

قد تكسب Techwalla تعويضًا من خلال الروابط التابعة في هذه القصة.