std.contract.binding
bind
added in 3.0
(bind contract)binds the contract to its var
(defn -minus- (x y (- x y)))
(do (bind (contract #‘-minus- [])) (bound? #’-minus-)) => true
bound?
added in 3.0
(bound? obj)checks if contract is bound to var
(bound? #’-add-) => false
(bound? #’-contract-) => false
(bound? -contract-) => false
contract
added in 3.0
(contract var inputs)(contract var inputs output)defines a contract given var and arguments
contract-info
added in 3.0
(contract-info {:keys [var], :as contract})returns the contract info
(-> (contract #’-add- [] nil) (contract-info)) => map?
contract-invoke
added in 3.0
(contract-invoke contract & args)invokes the contract
(-> (contract #’-add- [] nil) (contract-invoke 1 2)) => 3
contract-var?
added in 3.0
(contract-var? var)checks if var contains a contract
(contract-var? #’-add-) => false
(contract-var? #’-contract-) => true
defcontract
macro
added in 3.0
(defcontract sym & body)parse-arg
added in 3.0
(parse-arg obj)parses an input/output arg
(type/defspec
(parse-arg {
unbind
added in 3.0
(unbind obj)unbinds the contract to its var
(do (unbind #‘-minus-) (bound? #’-minus-)) => false