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 
implementation?

-austin

-- 
Austin Haas
Pet Tomato, Inc.
http://pettomato.com

On Tue Jan 08 14:30 , David Nolen wrote:
> 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, Austin Haas <aus...@pettomato.com> wrote:
> 
> >
> > 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
> >
> > --
> > Austin Haas
> > Pet Tomato, Inc.
> > http://pettomato.com
> >
> > On Tue Jan 08 07:28 , David Nolen wrote:
> > > 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 <aus...@pettomato.com>
> > wrote:
> > >
> > > >
> > > > 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
> > > > dispatching works following the above commit. It appears that each
> > > > implementation of IUnifyTerms must dispatch on the second argument,
> > and I
> > > > don't see how to get clojure.lang.Sequential to dispatch on a datom
> > unless
> > > > I override the implementation of clojure.lang.Sequential unify-terms
> > here:
> > > >
> > https://github.com/clojure/core.logic/blob/master/src/main/clojure/clojure/core/logic.clj#L1581
> > > >
> > > > I must be missing something. Any pointers would be appreciated.
> > > >
> > > > -austin
> > > >
> > > > --
> > > > Austin Haas
> > > > Pet Tomato, Inc.
> > > > http://pettomato.com
> > > >
> > > > --
> > > > You received this message because you are subscribed to the Google
> > > > Groups "Clojure" group.
> > > > To post to this group, send email to clojure@googlegroups.com
> > > > Note that posts from new members are moderated - please be patient with
> > > > your first post.
> > > > To unsubscribe from this group, send email to
> > > > clojure+unsubscr...@googlegroups.com
> > > > For more options, visit this group at
> > > > http://groups.google.com/group/clojure?hl=en
> > > >
> > >
> > > --
> > > You received this message because you are subscribed to the Google
> > > Groups "Clojure" group.
> > > To post to this group, send email to clojure@googlegroups.com
> > > Note that posts from new members are moderated - please be patient with
> > your first post.
> > > To unsubscribe from this group, send email to
> > > clojure+unsubscr...@googlegroups.com
> > > For more options, visit this group at
> > > http://groups.google.com/group/clojure?hl=en
> >
> > --
> > You received this message because you are subscribed to the Google
> > Groups "Clojure" group.
> > To post to this group, send email to clojure@googlegroups.com
> > Note that posts from new members are moderated - please be patient with
> > your first post.
> > To unsubscribe from this group, send email to
> > clojure+unsubscr...@googlegroups.com
> > For more options, visit this group at
> > http://groups.google.com/group/clojure?hl=en
> >
> 
> -- 
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with your 
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to