Liking cljdoc? Tell your friends :D

`(invert-many-to-many m)`

`(invert-many-to-many m to)`

Values must be collections.
Returns a map whose values are collections of the current keys.
An optional `to`

can be supplied - this must be conjable i.e nil, [], #{} ...
If no element is supplied then it defaults to using [].

Values are collections and there exists at least two values whose intersection is not empty. If your values are collections then it is best to assume that they fall into this category.

(invert-many-to-many {:a #{1 2} :b #{1 3} :c #{3 4}}) => {1 #{:b :a}, 2 #{:a}, 3 #{:c :b}, 4 #{:c}}

Values must be collections. Returns a map whose values are collections of the current keys. An optional `to` can be supplied - this must be conjable i.e nil, [], #{} ... If no element is supplied then it defaults to using []. Values are collections and there exists at least two values whose intersection is not empty. If your values are collections then it is best to assume that they fall into this category. (invert-many-to-many {:a #{1 2} :b #{1 3} :c #{3 4}}) => {1 #{:b :a}, 2 #{:a}, 3 #{:c :b}, 4 #{:c}}

`(invert-many-to-one m)`

`(invert-many-to-one m to)`

Returns a `one-to-many`

mapping.
A map is `many-to-one`

if more than one key is associatied with the same value.

An optional `to`

can be supplied - this must be conjable i.e nil, [], #{} ...
If no element is supplied then it defaults to using [].

If you have duplicate values then this function will not discard any information.

(invert-many-to-one {:a 1 :b 1 :c 2}) => {1 [:b :a], 2 [:c]}

Returns a `one-to-many` mapping. A map is `many-to-one` if more than one key is associatied with the same value. An optional `to` can be supplied - this must be conjable i.e nil, [], #{} ... If no element is supplied then it defaults to using []. If you have duplicate values then this function will not discard any information. (invert-many-to-one {:a 1 :b 1 :c 2}) => {1 [:b :a], 2 [:c]}

`(invert-one-to-many m)`

Returns a `many-to-one`

mapping.
A map is `one-to-many`

if the `vals`

are collections and all collections
are disjoint - i.e the union of any two values is empty.

(invert-one-to-many {1 #{:b :a}, 2 #{:c}}) => {:a 1 :b 1 :c 2}

Returns a `many-to-one` mapping. A map is `one-to-many` if the `vals` are collections and all collections are disjoint - i.e the union of any two values is empty. (invert-one-to-many {1 #{:b :a}, 2 #{:c}}) => {:a 1 :b 1 :c 2}

`(invert-one-to-one m)`

Returns a map that uses the vals as the keys and keys as vals

Returns a map that uses the vals as the keys and keys as vals

**cljdoc** is a website building & hosting documentation for Clojure/Script libraries