intentions.core
Macros and functions for defining intentions.
add-conduct
(add-conduct intent dispatch-val conduct-fn)
Adds a conduct function to an intention for the supplied dispatch value. See: defconduct.
conducts
(conducts intent)
Returns a map of dispatch values to conduct functions for an intention.
defconduct
macro
(defconduct intent dispatch-val & fn-tail)
Creates and adds a new conduct function, associated with dispatch-val
, to the supplied intention.
defintent
macro
(defintent name docstring? attr-map? & options)
Create a new intention with the associated options. The docstring and attribute map are optional.
Options are key-value pairs and may be one of:
- :dispatch
- the dispatch function, required
- :combine
- the combine function, required
- :default
- the default dispatch value, defaults to
:default
- :hierarchy
- the isa? hierarchy to use for dispatching, defaults to the global hierarchy
make-intent
(make-intent & {:keys [dispatch combine default hierarchy], :or {default :default}})
Create an anonymous intention. See: defintent.
prefer-conduct
(prefer-conduct intent dispatch-val-x dispatch-val-y)
Causes an intention to evaluate conducts for dispatch-val-x
after dispatch-val-y
, when neither dispatch value is more specific.
remove-conduct
(remove-conduct intent dispatch-val)
Removes a conduct function from an intention for the supplied dispatch value.