(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 fm-navig= for options about 'what' can be
if :me? is true, and (fm-navig= what where) return 'where'
if (:parent @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 fm-navig= for options about 'what' can be if :me? is true, and (fm-navig= what where) return 'where' if (:parent @where) returns a parent, recurse up the family tree return an error when (:must? options) is true and we nothing is found
(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-navig what where & options)
Search matrix ascendents and descendents for 'what', starting at 'where'
if :me? is true, and (fm-navig= 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 fm-navig on ancestor (skipping 'where')
Search matrix ascendents and descendents for 'what', starting at 'where' if :me? is true, and (fm-navig= 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 fm-navig on ancestor (skipping 'where')
(fm-navig= 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 =
(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)
(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
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-reset! me slot new-value)
deprecated. use mset!
deprecated. use mset!
(md-set! me slot new-value)
deprecated. use mset!
deprecated. use mset!
(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`
(mreset! me slot new-value)
alternate syntax conforming with clojure terminology
alternate syntax conforming with clojure terminology
(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
(the-kids & tree)
Macro to flatten kids in 'tree' and relate them to 'me' via the parent dynamic binding
Macro to flatten kids in 'tree' and relate them to 'me' via the *parent* dynamic binding
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close