http://www.adgoji.com/jobs
(let [people [["Someone" 13]]] (<- [?name ?count] ;; Output fields, implicity also define what ;; variables to group by (people ?name ?age _ ) ;; Input tap, binds tuples from the tap to ;; logic vars. Taps can be any Cascading Tap, ;; another query or a vector (* ?age 2 :> ?age-doubled)) ;; Operators, apply (Clojure) functions to a ;; var and bind the outcome to a new var? (> ?age 0) ;; Filters, when no variables are bound it act ;; as a filter (* ?age ?age-doubled :> 10) ;; Another Filter, filter everything that (c/count ?count) ;; Aggregators ))
;; Output tap can be any Cascading Tap (?- (stdout) query) (?<- (stdout) [?var1 ?var2] (query ?var1 ?var2)) (?<- (hfs-textline "text-file") [?var1 ?var2] (query ?var1 ?var2)) ;; Can also assigned to a Clojure vector (let [in-memory-data (??- query)] (println in-memory-data))
Nathan Marz blog (http://nathanmarz.com/blog)
Github Wiki
Mailing list
/