mini-kanren quelle est la différence entre un cond-u-et cond-e cond?
-
29-09-2019 - |
Question
J'ai essayé d'utiliser une implémentation de mini-kanren dans Clojure. Mais eu du mal à comprendre la différence entre un cond-u-et cond-e cond. Il me semble être tout à fait clair sur-e mais cond compréhension des cond-a et-u est cond mauvais calme.
e-cond prend un ensemble d'objectifs et tente alors chacun d'eux ... i.e. essaie toutes les branches qui réussissent.
et un cond-u-cond au contraire commettras à la branche dont le premier prédicat et réussit un rendement cond-unifications tous les succès possibles là-bas après. tandis que-u retourne cond seule la première unification ... mais cependant Successfull il semble que cette compréhension n'est pas correct quand je l'utilise. aider quelqu'un peut me préciser cette compréhension.
La solution
donne-e cond toutes les réponses de toutes les branches qui réussissent
i-cond donne toutes les réponses, mais les entrelacements.
cond-un ne donne que les réponses de la première branche réussie
u-cond ne donne que la première réponse de la première branche réussie
Autres conseils
Je voulais juste obtenir ma tête autour de ces questions. Il y a une mise en œuvre du système shortified Sokuza-kanren avec quelques commentaires, je vais lire ce soir.