clara.rules.dsl
Implementation of the defrule-style DSL for Clara. Most users should simply use the clara.rules namespace.
build-query
(build-query name body)
(build-query name body form-meta)
Function used to parse and build a query using the DSL syntax.
build-rule
(build-rule name body)
(build-rule name body form-meta)
Function used to parse and build a rule using the DSL syntax.
destructuring-sym?
(destructuring-sym? sym)
local-syms
macro
(local-syms)
ops
parse-query
macro
(parse-query params lhs)
Macro used to dynamically create a new rule using the DSL syntax.
parse-query*
(parse-query* params lhs env)
(parse-query* params lhs env query-meta)
Creates a query from the DSL syntax using the given environment map.
parse-rule
macro
(parse-rule lhs rhs)
(parse-rule lhs rhs properties)
Macro used to dynamically create a new rule using the DSL syntax.
parse-rule*
(parse-rule* lhs rhs properties env)
(parse-rule* lhs rhs properties env rule-meta)
Creates a rule from the DSL syntax using the given environment map. ns should be bound to the namespace the rule is meant to be defined in.
split-lhs-rhs
(split-lhs-rhs rule-body)
Given a rule with the =>, splits the left- and right-hand sides.