This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-12-20
Channels
- # adventofcode (140)
- # beginners (107)
- # boot (120)
- # boot-dev (1)
- # clara (13)
- # cljs-dev (9)
- # clojure (107)
- # clojure-argentina (5)
- # clojure-art (16)
- # clojure-dev (23)
- # clojure-greece (19)
- # clojure-italy (5)
- # clojure-russia (2)
- # clojure-serbia (3)
- # clojure-spec (27)
- # clojure-sweden (1)
- # clojure-uk (15)
- # clojurescript (134)
- # cursive (5)
- # data-science (10)
- # datomic (23)
- # duct (28)
- # fulcro (48)
- # garden (5)
- # hoplon (2)
- # instaparse (1)
- # klipse (7)
- # leiningen (8)
- # lumo (36)
- # off-topic (72)
- # om (4)
- # onyx (37)
- # perun (4)
- # re-frame (64)
- # reagent (86)
- # remote-jobs (1)
- # shadow-cljs (59)
- # spacemacs (16)
- # sql (1)
- # uncomplicate (6)
- # unrepl (90)
So the first level of discrimination in the rules network is going always “fact type”
However, the combination of :fact-type-fn
and :ancestors-fn
give you flexibility into what that means
The default :fact-type-fn
is Clojure’s clojure.core/type
, which is just (or (get (meta x) :type) (class x))
The default :ancestors-fn
is clojure.core/ancestors
which respects the “global hierarchy” in Clj which can be altered via things like derive
:ancestors-fn
is just for making the supertype subtype relationships that factor into the fact type dispatch
You don’t necessarily have to have a “fact type” if you really don’t want, or you can make it something that is based on the data of the map entities you have