Clojure 相同的功能,不同的结果
我有一个Clojure ns,它定义了一个内存中的数据库:1个分区,几个属性和2个实体。我从Eclipse运行它(逆时针),结果(异常)如下所示:Clojure 相同的功能,不同的结果,clojure,datomic,Clojure,Datomic,我有一个Clojure ns,它定义了一个内存中的数据库:1个分区,几个属性和2个实体。我从Eclipse运行它(逆时针),结果(异常)如下所示: ;; Clojure 1.4.0 ;; Switching to ww.billing namespace #'ww.billing/cardinality #<Namespace ww.billing> => (setup-db) #<HashSet [[:billing]]> #<HashSet [[:db/c
;; Clojure 1.4.0
;; Switching to ww.billing namespace
#'ww.billing/cardinality
#<Namespace ww.billing>
=> (setup-db)
#<HashSet [[:billing]]>
#<HashSet [[:db/code], [:customer/taxid], [:fressian/tag], [:db/unique], [:db/fn],
[:customer/role], [:db/noHistory], [:db/fulltext], [:db/lang], [:db/valueType],
[:db/doc], [:db/isComponent], [:db.install/function], [:db/cardinality],
[:db/txInstant], [:db/index], [:customer/taxname]]>
#<HashSet [["BBB010101BB1"], ["AAA010101AAA"]]>
#<HashSet [[272678883689455], [272678883689454]]>
nil
=> (cardinality mdb :customer/taxid)
IllegalArgumentException Cannot resolve key: :customer/taxid
datomic.datalog/resolve-id ( datalog.clj:144)
;;Clojure 1.4.0
;; 切换到ww.billing命名空间
#“ww.billing/cardinality
#
=>(设置数据库)
#
#
#
#
无
=>(基数mdb:customer/taxid)
IllegalArgumentException无法解析密钥::customer/taxid
datomic.datalog/resolve-id(datalog.clj:144)
然而,从LightTable来看,同样的代码,结果当然不同(正确):
(ns ww.计费)=>无
(设置数据库)=>零
(基数mdb:customer/taxid)=>:db.cardinality/one
输出:
#
#
#
#
根据环境的不同,可能导致不同结果的原因是什么?注意:IntelliJ的行为类似于Eclipse。基数函数取自西雅图演示。这在谷歌群组中得到了充分回答:这在谷歌群组中得到了充分回答:
(ns ww.billing) => nil
(setup-db) => nil
(cardinality mdb :customer/taxid) => :db.cardinality/one
Output:
#<HashSet [[:billing]]>
#<HashSet [[:db/code], [:customer/taxid], [:fressian/tag], [:db/unique], [:db/fn],
[:customer/role], [:db/noHistory], [:db/fulltext], [:db/lang], [:db/valueType],
[:db/doc], [:db/isComponent], [:db.install/function], [:db/cardinality],
[:db/txInstant], [:db/index], [:customer/taxname]]>
#<HashSet [["BBB010101BB1"], ["AAA010101AAA"]]>
#<HashSet [[272678883689455], [272678883689454]]>