Interesting, thanks. FYI: I do not see that question in the QA of the readme. I see Datalog and core.logic comparison, but not specter.
On Friday, 24 February 2017 17:11:16 UTC-8, tbc++ wrote: > > It's in the QA in the readme, but specter only queries a single path > through the data. Odin supports relations, joins, recursive rules, tabling, > etc. > > Currently Specter will probably perform a bit better, but I hope to close > that gap in the future. > > > Timothy > > On Fri, Feb 24, 2017 at 5:10 PM Didier <did...@gmail.com <javascript:>> > wrote: > >> How does this compare to Specter? >> >> >> On Thursday, 23 February 2017 13:34:16 UTC-8, Alan Thompson wrote: >> >>> Just came across this - it looks very cool! >>> Alan >>> >> On Sat, Dec 10, 2016 at 7:14 AM, Timothy Baldridge <tbald...@gmail.com> >>> wrote: >>> >> I just released the first official version of Odin ( >>>> https://github.com/halgari/odin). Odin is a declarative, extensible >>>> query DSL for Clojure that leverages transducers to provide a high amount >>>> of generality while still maintaining acceptable performance. >>>> >>>> One of the biggest features of Odin is its ability to rapidly index and >>>> query "normal" Clojure data structures. Here is a quick example of this >>>> feature in practice: >>>> >>>> (let [orders [{:customer/name "Sam" >>>> :customer/id 3411} >>>> {:customer/id 3411 >>>> :order/items {1212 3}} >>>> {:customer/id 3411 >>>> :order/items {2232 2 4242 3}} >>>> {:item/id 1212 >>>> :item/price 40.0} >>>> {:item/id 2232 >>>> :item/price 100} >>>> {:item/id 4242 >>>> :item/price 1.99}]] >>>> (->> (o/for-query >>>> (o/and >>>> (d/query orders ?customer :customer/name "Sam") >>>> (d/query orders ?customer :customer/id ?id) >>>> (d/query orders ?order :customer/id ?id) >>>> (d/query-in orders ?order [:order/items ?item-id] ?qty) >>>> (d/query orders ?item :item/id ?item-id) >>>> (d/query orders ?item :item/price ?price)) >>>> (* ?qty ?price)) >>>> (reduce + 0))) >>>> >>>> ;; => 325.97 >>>> >>>> >>>> In this example we are given a vector of maps, we are then finding a >>>> customer by name, >>>> >>>> then walking a path through the data to find all the items that customer >>>> ordered, the >>>> >>>> total price is then calculated via the normal multiply and sum. >>>> >>>> >>>> There are several other features supported by Odin, including >>>> transformation of data >>>> >>>> (based on a query), tabling, Datomic support, and much more. >>>> >>>> >>>> I also did a video series on the development process of Odin if anyone is >>>> interested: >>>> (https://www.youtube.com/watch?v=JyKySmcTR4g) >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Clojure" group. >>>> >>> To post to this group, send email to clo...@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+u...@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 unsubscribe from this group and stop receiving emails from it, send >>>> an email to clojure+u...@googlegroups.com. >>> >>> >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> -- >> You received this message because you are subscribed to the Google >> Groups "Clojure" group. >> To post to this group, send email to clo...@googlegroups.com >> <javascript:> >> Note that posts from new members are moderated - please be patient with >> your first post. >> To unsubscribe from this group, send email to >> clojure+u...@googlegroups.com <javascript:> >> 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 unsubscribe from this group and stop receiving emails from it, send an >> email to clojure+u...@googlegroups.com <javascript:>. >> For more options, visit https://groups.google.com/d/optout. >> > -- > “One of the main causes of the fall of the Roman Empire was that–lacking > zero–they had no way to indicate successful termination of their C > programs.” > (Robert Firth) > -- 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 unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.