(aliases-of path reentrance-sets)
given path and a set of set of paths, for each subset s, if a member m1 of s is a prefix of path, concatenate each member other m2 of s to remainder(m2,path).
given _path_ and a set of set of paths, for each subset s, if a member m1 of s is a prefix of _path_, concatenate each member other m2 of s to remainder(m2,path).
(assoc-in m path v)
Similar to clojure.core/assoc-in, but uses unification so that existing values are unified rather than overwritten.
Similar to clojure.core/assoc-in, but uses unification so that existing values are unified rather than overwritten.
(assoc-in! m path v)
Similar to assoc-in, but m's references (if any) are modified.
Similar to assoc-in, but m's references (if any) are modified.
(create-path-in path value)
create a path starting at map through all keys in map: (create-path-in '(a b c d e) value) => {:a {:b {:c {:d {:e value}}}}})
create a path starting at map through all keys in map: (create-path-in '(a b c d e) value) => {:a {:b {:c {:d {:e value}}}}})
(dissoc-in structure path)
dissoc a path in a dag, as well as any other path in the dag to the same value.
dissoc a path in a dag, as well as any other path in the dag to the same value.
(dissoc-in-map the-map path)
dissoc a nested path from the-map; e.g.: (dissoc-in {:a {:b 42, :c 43}} [:a :b]) => {:a {:c 43}}.
dissoc a nested path from the-map; e.g.: (dissoc-in {:a {:b 42, :c 43}} [:a :b]) => {:a {:c 43}}.
(fail-path-between fs1 fs2)
If unifying fs1 and fs2 leads to a fail somewhere, show the path to the fail. Otherwise return nil. Not efficient: use only for diagnostics.
If unifying fs1 and fs2 leads to a fail somewhere, show the path to the fail. Otherwise return nil. Not efficient: use only for diagnostics.
(fail-path-r fs & [fs-keys])
find the first failing path in a fs.
find the first failing path in a fs.
(fail? fs)
(fail? fs) <=> true if at least one of fs's path's value is :fail.
(fail? fs) <=> true if at least one of fs's path's value is :fail.
(find-paths-to-value map value path)
find all paths in map which are equal to value, where value is (ref?)=true.
find all paths in _map_ which are equal to _value_, where _value_ is (ref?)=true.
(get-in in-map path & [not-found])
same as clojure.core (get-in), but references are resolved and followed.
same as clojure.core (get-in), but references are resolved and followed.
(pathify fs & [prefix])
Transform a map into a map of paths/value pairs, where paths are lists of keywords, and values are atomic values. e.g.: {:foo {:bar 42, :baz 99}} => { { (:foo :bar) 42}, {(:foo :baz) 99} } The idea is to map the key :foo to the (recursive) result of pathify on :foo's value.
Transform a map into a map of paths/value pairs, where paths are lists of keywords, and values are atomic values. e.g.: {:foo {:bar 42, :baz 99}} => { { (:foo :bar) 42}, {(:foo :baz) 99} } The idea is to map the key :foo to the (recursive) result of pathify on :foo's value.
(prefix? a b)
return true iff seq a is a prefix of seq b: (prefix? [:a ] [:a :b]) => true (prefix? [:a :b] [:a ]) => false (prefix? [:a :b] [:a :c]) => false
return true iff seq a is a prefix of seq b: (prefix? [:a ] [:a :b]) => true (prefix? [:a :b] [:a ]) => false (prefix? [:a :b] [:a :c]) => false
(recursive-dissoc a-map pred)
like dissoc, but works recursively. Only works on reference-free maps (contains no atoms).
like dissoc, but works recursively. Only works on reference-free maps (contains no atoms).
(ref-skel-map input-map)
associate each reference in input-map with:
associate each reference in _input-map_ with: 1. its skeleton 2. all paths to point to it.
(remainder a b)
if seq a is a prefix of seq b, then return what is left of b besides the common prefix of a. if seq a is not a prefix, return nil.
if seq a is a prefix of seq b, then return what is left of b besides the common prefix of a. if seq a is not a prefix, return nil.
(remove-top-values fs)
Remove any <key,value> pair in the input fs if value=:top. Use case is logging where we don't care about uninformative key->value pairs where value is simply :top. Also strips refs for readability.
Remove any <key,value> pair in the input _fs_ if value=:top. Use case is logging where we don't care about uninformative key->value pairs where value is simply :top. Also strips refs for readability.
(resolve arg)
if arg is not a ref, return arg. if is a ref, return (resolve @arg)
if arg is not a ref, return arg. if is a ref, return (resolve @arg)
(simplify-ref arg)
if arg is a ref and @arg is not a ref, return arg. if @arg is also a ref, return (simplify-ref @arg). else, return arg.
if arg is a ref and @arg is not a ref, return arg. if @arg is also a ref, return (simplify-ref @arg). else, return arg.
(skels input-map refs)
create map from reference to their skeletons.
create map from reference to their skeletons.
(sort-shortest-path-ascending-r serialization path-length-pairs)
(unify & args)
like unify!, but non-destructively copy each argument before unifying.
like unify!, but non-destructively copy each argument before unifying.
(unify! val1)
(unify! val1 val2 & rest-args)
destructively merge arguments, where arguments are maps possibly containing references, so that sharing relationship in the arguments is preserved in the result
destructively merge arguments, where arguments are maps possibly containing references, so that sharing relationship in the arguments is preserved in the result
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close