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.

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top