Re: core.logic: datomic unification

2013-01-08 Thread David Nolen
The dispatching mechanism was more trouble than it was worth but we did lose some flexibility. Do you really need to unify Sequential or is unifying with a concrete type like PersistentVector work well enough for your use case? David On Tue, Jan 8, 2013 at 2:01 AM, Austin Haas

Re: core.logic: datomic unification

2013-01-08 Thread Austin Haas
Ok, thanks, I'll try to get it to work with PersistentVector. I just started looking at core.logic's internals, and I'm still fairly new to Clojure, so everything is a little fuzzy. I took Sequential for granted, since that is referenced in the existing code. Thanks for the help. -austin

Re: core.logic: datomic unification

2013-01-08 Thread David Nolen
I've updated the experimental core.logic Datomic support so that you can unify PersistentVector and Datoms again. In a real system I'd probably recommend providing your own tuple type that does not implement Sequential for doing unification with Datoms. David On Tue, Jan 8, 2013 at 11:55 AM,

Re: core.logic: datomic unification

2013-01-08 Thread Austin Haas
Thanks! I had just finished making similar changes. It was a good exercise and I'm glad to be able to compare code. A couple of questions: 1. Why is there no case for unifying a Datom with another Datom? 2. Why aren't multimethods used for dispatching to the appropriate unification

Re: core.logic: datomic unification

2013-01-08 Thread David Nolen
On Tue, Jan 8, 2013 at 3:29 PM, Austin Haas aus...@pettomato.com wrote: Thanks! I had just finished making similar changes. It was a good exercise and I'm glad to be able to compare code. A couple of questions: 1. Why is there no case for unifying a Datom with another Datom? Oversight. I

core.logic: datomic unification

2013-01-07 Thread Austin Haas
The datomic unification code in core.logic has bit-rotted. It depends on IUnifyWithSequential, which was removed in this commit: https://github.com/clojure/core.logic/commit/bbc4e820128d5a0745ce3d79cd3bbd9401a1bf55 I'm trying to understand how to update the code, but I don't get how