Skip to content

non-pure map functions in mapped-by shouldn't create multiple nodes.#100

Open
brycecovert wants to merge 1 commit intoaysylu:masterfrom
brycecovert:master
Open

non-pure map functions in mapped-by shouldn't create multiple nodes.#100
brycecovert wants to merge 1 commit intoaysylu:masterfrom
brycecovert:master

Conversation

@brycecovert
Copy link
Copy Markdown

I had a case where I was mapping over a graph and assoc'ing a uuid onto each. This caused my directed graph to have lots of 'copies' in it, since each call to the mapping function resulted in a different value. The result is a graph with a 2 new nodes per edge.

At first, I thought that changing mapped-by might be wrong, since it's generally poor form to use state in map/filter/etc. However, I realized that none of the derived graph functions are lazy, they're all eager, so this probably fits in line with the existing design.

An alternative for me would be the ability to edit/update a node, with semantics similar to update-in or swap!. An example of that would be:
(update-node graph node #(assoc % :id (rand-int))).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant