سؤال

لقد حاولت استخدام تنفيذ Mini-Kanren في Clojure. ولكن كنت تكافح من أجل فهم الفرق بين Cond-A Cond-U و Cond-E. يبدو أنني واضح تمامًا بشأن الوصلات ولكن فهم الوصلات و Cond-U هادئ سيء.

يأخذ Cond-E مجموعة من الأهداف ثم يحاول كل منهم ... أي يحاول جميع الفروع التي تنجح.

Cond-A و Cond-U على عكس الالتزام بالفرع الذي ينجح مسنده الأول ويعيد كل التوحيد الناجح المحتملة هناك بعد. على الرغم من أن Cond-U لا يعيد سوى توحيد أول ناجح ... ولكن يبدو أن هذا الفهم غير صحيح عند استخدامه. هل يمكن لأي شخص مساعدتي في توضيح هذا الفهم.

هل كانت مفيدة؟

المحلول

يعطي الوصلات كل إجابة من جميع الفروع التي تنجح

الوصلات-أعطي كل إجابة ولكن تتشابك لهم.

Cond-A يعطي فقط الإجابات من الفرع الناجح الأول

يعطي Cond-U فقط الإجابة الأولى من الفرع الناجح الأول

نصائح أخرى

كنت أحاول فقط الحصول على رأسي حول هذه الأمور. هناك تنفيذ مخطط مختصرةSokuza-Kanren مع بعض التعليقات ، سأقرأها الليلة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top