Browse Source

add examples from demo session.

Lucas Stadler 12 years ago
parent
commit
523d426c1d
1 changed files with 67 additions and 0 deletions
  1. 67 0
      clj/datomic/src/scratchpad.clj

+ 67 - 0
clj/datomic/src/scratchpad.clj

@ -9,3 +9,70 @@
9 9
(def conn (connect-to "datomic:free://localhost:4334/scratchpad"))
10 10
11 11
(defn db [] (d/db conn))
12
13
(d/transact conn
14
  [{:db/id (d/tempid :db.part/db)
15
    :db/ident :person/name
16
    :db/valueType :db.type/string
17
    :db/cardinality :db.cardinality/one
18
    :db.install/_attribute :db.part/db}])
19
20
(def nums [1 2 3 4 5 6])
21
22
(def fancy-nums (atom [42]))
23
24
(def immutable-nums (deref fancy-nums))
25
immutable-nums
26
27
(swap! fancy-nums conj 3.145)
28
@fancy-nums
29
30
(d/transact conn
31
  [{:db/id (d/tempid :db.part/user)
32
    :person/name "Tom"}])
33
34
(d/q '[:find ?e
35
       :where [?e :person/name "Tom"]]
36
     (db))
37
38
(d/transact conn
39
  [{:db/id (d/tempid :db.part/db)
40
    :db/ident :place/name
41
    :db/valueType :db.type/string
42
    :db/cardinality :db.cardinality/one
43
    :db.install/_attribute :db.part/db}])
44
45
(def db1 (db))
46
47
db1
48
49
(d/touch (d/entity (db) 17592186045418))
50
51
(d/transact conn
52
  [{:db/id 17592186045418
53
    :place/name "Leipzig"}])
54
55
(d/q '[:find ?e1 ?e2 ?name ?place
56
       :where [?e1 :person/name ?name]
57
              [?e2 :place/name ?place]]
58
     (db))
59
60
(d/transact conn
61
  [{:db/id (d/tempid :db.part/user)
62
    :person/name "Paul"
63
    :place/name "Paris"}])
64
65
(d/transact conn
66
  [{:db/id 17592186045418
67
    :person/name "Klaus"}])
68
69
(d/q '[:find ?old-name ?new-name
70
       :where [?e :person/name ?old-name ?t1]
71
              [?e :person/name ?new-name ?t2]
72
              [(not= ?old-name ?new-name)]
73
              [(< ?t1 ?t2)]]
74
  (d/history (db)))
75
76
(d/q '[:find ?e ?a ?v
77
       :where [?e ?a ?v]]
78
  (db))