Utility functions for implementing Dispatchers.
Utility functions for implementing Dispatchers.
(add-preference isa?* prefs x y)
Add a method preference to prefs
for dispatch value x
over y
. Used to implement prefer-method
. isa?*
is
used to determine whether a relationship between x
and y
that precludes this preference already exists; it can
be clojure.core/isa?
, perhaps partially bound with a hierarchy, or some other 2-arg predicate function.
Add a method preference to `prefs` for dispatch value `x` over `y`. Used to implement `prefer-method`. `isa?*` is used to determine whether a relationship between `x` and `y` that precludes this preference already exists; it can be `clojure.core/isa?`, perhaps partially bound with a hierarchy, or some other 2-arg predicate function.
(ambiguous? hierarchy prefs dispatch-value dispatch-val-x dispatch-val-y)
True if neither dispatch-val-x
nor dispatch-val-y
dominate one another, e.g. because they are the same value or
are both equally-specific ancestors.
True if neither `dispatch-val-x` nor `dispatch-val-y` dominate one another, e.g. because they are the same value or are both equally-specific ancestors.
(distinct-by f coll)
Like distinct
, but uses value of (f item)
to determine whether to keep each item
in the resulting collection.
Like `distinct`, but uses value of `(f item)` to determine whether to keep each `item` in the resulting collection.
(dominates? hierarchy prefs x y)
True if dispatch value x
should be considered more specific for purposes of method combination over dispatch value
y
, e.g. because x
derives from y
, or because x
(or one of its ancestors) has been explicitly preferred over
y
(or one of its ancestors).
True if dispatch value `x` should be considered more specific for purposes of method combination over dispatch value `y`, e.g. because `x` derives from `y`, or because `x` (or one of its ancestors) has been explicitly preferred over `y` (or one of its ancestors).
(domination-comparitor hierarchy prefs dispatch-value)
Given a hierarchy prefs
return a function that can be used to sort dispatch values from most-specific to
least-specific.
Given a `hierarchy prefs` return a function that can be used to sort dispatch values from most-specific to least-specific.
(prefers? hierarchy prefs x y)
True if x
or one of its ancestors is prefered over y
or one of its ancestors.
True if `x` or one of its ancestors is prefered over `y` or one of its ancestors.
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close