Skip to content

Instantly share code, notes, and snippets.

@ninjudd
Created May 9, 2012 01:21
Show Gist options
  • Select an option

  • Save ninjudd/2640948 to your computer and use it in GitHub Desktop.

Select an option

Save ninjudd/2640948 to your computer and use it in GitHub Desktop.
(letfn [(incoming-exists? [id exists?] (and exists? (not (node-deleted? id))))
(edge-deleted? [id deleted?] (or deleted? (node-deleted? id)))
(edge-deleted [id edge] (update edge :deleted (partial edge-deleted? id)))]
(defn- mark-edges-deleted [keyseq node incoming]
(cond-let [ks (edges-keyseq keyseq)]
(update-in node ks map-vals-with-keys
(if incoming?
incoming-exists?
edge-deleted))
[ks (deleted-edge-keyseq keyseq)]
(update-in node ks
(if incoming?
incoming-exists?
edge-deleted?))
:else node)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment