I would make the graph immutable. If performance is a objective it might not work though. My tip for learning it: Sit down and think about the problem. Consider your Clojure structures.
2011/6/16 Colin Yates <colin.ya...@gmail.com> > (newbie warning) > > Our current solution is an OO implementation in Groovy and Java. We > have a (mutable) Project which has a DAG (directed acyclic graph). > This is stored as a set of nodes and edges. There are multiple > implementations of nodes (which may themselves be Projects). There > are also multiple implementations of edges. > > My question isn't how to do this in a functional paradigm, my first > question is *how do I learn* to do this in a functional paradigm. I > want to be able to get the answer myself ;). To that end, are there > any "domain driven design with functional programming" type resources? > > A more specific question is how do I model a graph? These graphs can > be quite extensive, with mutations on the individual nodes as well as > the structure (i.e. adding or removing branches). Does this mean that > every every node would be a ref? I think the general answer is that > the aggregate roots are refs, meaning they are an atomic block, but is > there any more guidance? > > -- > 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 -- 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