(backdoor-reset! me slot new-value)
(backdoor-reset!? me slot new-value)
(cFkids & tree)
Syntax sugar for formulae that define :kids slots
Syntax sugar for formulae that define :kids slots
(fasc what where & options)
Search matrix ascendents for 'what', starting at 'where'
See fget= for options about 'what' can be
if :me? is true, and (fget= what where) return 'where'
if (:par @where) returns a parent, recurse up the family tree
return an error when (:must? options) is true and we nothing is found
Search matrix ascendents for 'what', starting at 'where' See fget= for options about 'what' can be if :me? is true, and (fget= what where) return 'where' if (:par @where) returns a parent, recurse up the family tree return an error when (:must? options) is true and we nothing is found
(fget what where & options)
Search matrix ascendents and descendents for 'what', starting at 'where'
if :me? is true, and (fget= what where) return 'where' (:me? is false by default)
if :inside? is true, try kids recursively (after removing any listed in :skip option)
if :up? is true, invoke fget on ancestor (skipping 'where')
Search matrix ascendents and descendents for 'what', starting at 'where' if :me? is true, and (fget= what where) return 'where' (:me? is false by default) if :inside? is true, try kids recursively (after removing any listed in :skip option) if :up? is true, invoke fget on ancestor (skipping 'where')
(fget= seek poss)
Return true if 'poss' is the matrix reference we 'seek'
There are 4 branches to this.
'poss' is not a ref, return false 'seek' is a fn?, we return result of invoke it with 'poss' 'seek' is a keyword?, we return true if it is = with (:name poss) :else compare 'poss' and 'seek' directly using =
Return true if 'poss' is the matrix reference we 'seek' There are 4 branches to this. 'poss' is not a ref, return false 'seek' is a fn?, we return result of invoke it with 'poss' 'seek' is a keyword?, we return true if it is = with (:name poss) :else compare 'poss' and 'seek' directly using =
(fm! what where)
Search matrix ascendents and descendents from node 'where', for 'what', throwing an error when not found
Search matrix ascendents and descendents from node 'where', for 'what', throwing an error when not found
(fm-kids-observe me newk oldk c)
(fmi-w-class where class)
Search matrix descendents from 'where' for first with given :class
Search matrix descendents from 'where' for first with given :class
(fmo me id-name)
Search matrix ascendents from node 'me' for 'id-name', trying first as a name, then as an id
Search matrix ascendents from node 'me' for 'id-name', trying first as a name, then as an id
(fmov me id-name)
(fmov me id-name slot-name)
Use 'fmo' and extract :value (or slot indicated by :slot-name)
Use 'fmo' and extract :value (or slot indicated by :slot-name)
(fmu name & [me])
(kid-values-kids me x-kids)
A pattern commonly employed in matrix applications is to define a :kid-factory on some 'parent' cell, and use it to enrich the value extracted from the parent's kid cells.
This function maps across the :kids-values, invoking the factory as it goes
A pattern commonly employed in matrix applications is to define a :kid-factory on some 'parent' cell, and use it to enrich the value extracted from the parent's kid cells. This function maps across the :kids-values, invoking the factory as it goes
(make & arg-list)
Each app will populate this with the root of its application matrix.
Each app will populate this with the root of its application matrix.
(md-get me slot)
(md-getx tag me slot)
(md-kids me)
(md-name me)
(md-reset! me slot new-value)
(mdv! what slot & [me])
Search matrix ascendents from node 'me' looking for what
, and extract slot
Search matrix ascendents from node 'me' looking for `what`, and extract `slot`
(mget me slot)
(mset! me slot new-value)
(mswap! me slot swap-fn & swap-fn-args)
(mx-par me)
(mxi-find where property value)
Search matrix descendents from node 'where' for node with property and value
Search matrix descendents from node 'where' for node with property and value
(mxu-find-id where id)
Search matrix ascendents from node 'where' looking for element with given id
Search matrix ascendents from node 'where' looking for element with given id
(mxu-find-name where name)
Search matrix ascendents from node 'where' looking for element with given name
Search matrix ascendents from node 'where' looking for element with given name
(mxu-find-type me type)
Search matrix ascendants from node 'me' for first with given tag
Search matrix ascendants from node 'me' for first with given tag
(nextsib mx)
(prevsib mx)
(the-kids & tree)
Macro to flatten kids in 'tree' and relate them to 'me' via the par dynamic binding
Macro to flatten kids in 'tree' and relate them to 'me' via the *par* dynamic binding
(with-par meform & body)
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close