Ich habe den folgenden Code in Clojure (mit core.logic):Clojure core.logic alle Mitglieder finden, die alle Prädikate erfüllt?
(db-rel parent x y)
(db-rel go-to-school x y)
(def schools
(db
[parent 'Adam 'Ana]
[parent 'Adam 'Andre]
[parent 'Adam 'Alan]
[parent 'Bernard 'Bia]
[parent 'Bernard 'Beatrice]
[parent 'Carl 'Carlos]
[parent 'Carl 'Connie]
[go-to-school 'School1 'Ana]
[go-to-school 'School1 'Andre]
[go-to-school 'School2 'Alan]
[go-to-school 'School2 'Bia]
[go-to-school 'School2 'Beatrice]
[go-to-school 'School1 'Carlos]
[go-to-school 'School2 'Connie]))
Was ich will, ist es, alle Eltern zu finden, wo alle Kinder auf die gleiche Schule gehen. Also, auf der obigen Liste läuft, wäre meine erwartete Rückkehr ('Bernard)
, weil seine zwei Töchter die "Schule2" gehen, wo jeder andere Elternteil mindestens ein Kind hat, das nicht zur gleichen Schule von anderen geht.
Ist dies mit core.logic möglich? Wenn ja, wie kann ich das tun?
Ich weiß, dass ich mich nur gefragt habe, ob ich das tun könnte, ohne andere Clojure-Funktionen zu verwenden. Der Grund ist, dass ich dieses Problem auf ein riesiges Dataset anwenden und sehen wollte, ob core.logic schneller wäre als ohne es. –