Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
(ns generativity
(:use [cascalog api]))
(defn one_of [seq] (vec (map vector seq)))
(deffilterop forbid
([var comparator val]
(not (comparator var val)))
([var op val comparator comparee]
(not (comparator (op var val) comparee))))
(def generativity
(<-
[?alice ?bob ?claire]
((one_of [1 2 3]) ?alice)
((one_of [1 2 3]) ?bob)
((one_of [1 2 3]) ?claire)
(cross-join)
(forbid ?alice = ?bob) (forbid ?bob = ?claire) (forbid ?alice = ?claire)
(forbid ?bob = 3)
(forbid ?alice - ?claire = 1) (forbid ?claire - ?alice = 1)
(forbid ?claire < ?bob)))
; (?- (stdout) generativity)
;
; RESULTS
; -----------------------
; 1 2 3
; -----------------------
(defproject generativity "0.0.1"
:source-path "src"
:dependencies [[cascalog "1.8.8-SNAPSHOT"]]
:profiles {
:provided {
:dependencies [[org.apache.hadoop/hadoop-core "0.20.2-dev"]]
}
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment