On Sunday, December 2, 2012 7:33:17 PM UTC+2, David Nolen wrote: > > On Sat, Dec 1, 2012 at 12:24 AM, Jonas <jonas....@gmail.com > <javascript:>>wrote: > >> >> * Predicates on logic vars: >> [(foo (? x number?)) (bar ?x)] => match (foo 42) but not (foo :bar) >> > > This is now possible since we have constraints. >
Awesome. Is this already in a released version of core.logic? Do you know of any examples I might study? > > >> * Segment vars: >> [(* ??x 1 ??y) (* ??x ??y)] => (* 4 3 2 1 2 3 4) would turn into (* 4 >> 3 2 2 3 4) >> and >> [(* ??x 0 ??y) 0] => (* 1 2 3 0 4 5 6 7) would turn into 0 >> > > This has been possible for some time - but you need to extend unification. > You need to create a wrapper around sequences and a new kind of logic var. > Kevin's work on the partial map (PMap) functionality is a good starting > point as well the work I've done on constrained vars (CVar). > I'd be interested in creating an SVar ("segment var") then. I'll start by trying to understand yours and Kevins work on CVar/PMap. > > As far as doing a computer algebra system, I know things like this have > been done before in Prolog so I don't see why not. > Sorry, I didn't mean to imply that it couldn't be done in core.logic, only that the kibit rule system isn't as expressive as I'd like it to be. Jonas > > David > >> > -- 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