Nick Day <nicke...@gmail.com> writes:
> I've been trying to implement a topological sort and have been
> struggling a bit. I have a map of symbol vs collection of symbols
> like:
>
> {a [b c], b [c], c [nil]}
>
> which can be read as 'a' depends on 'b' and 'c', 'b' depends on 'c'
> and 'c' doesn't depend on anything.  I've been trying to write
> something that returns a collection of the dependencies in order (c,
> b, a) but so far I've only been able to do it using a ref to store
> intermediate output of the sorting.  I was wondering if anyone has
> already done something similar?

clojure.contrib.graph/dependency-list might be close enough for you

(use 'clojure.contrib.graph)

(dependency-list {:nodes [:a :b :c]
                                  :neighbors {:a [:b :c]
                                                          :b [:c]}})
=>[#{:c} #{:b} #{:a}]

--
jan

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to