That assumes the intermediate functions are reusable. I guess with all these things asthetics come into play, and there is of course the option of letfn as well. On 14 May 2015 18:40, "Sean Corfield" <s...@corfield.org> wrote:
> On May 14, 2015, at 10:28 AM, Colin Yates <colin.ya...@gmail.com> wrote: > > I guess a related concern is abstraction. I notice I often have > functions which work at different levels of abstraction in the same ns > which makes me uncomfortable. In OO land they would be package level or > even instance classes. I haven't yet found a way to solve this in clojure > land. > > To be explicit, I have a defn which calls a defn which calls a defn > which calls ...., having all of those defns public doesn't capture the > hierarchy of abstraction. > > …although it would allow other users of your code to build their own > abstraction hierarchies. They can’t do that if you make things private > "arbitrarily". > > If you really want to separate them and provide strong guidance that there > is an intended hierarchy of abstractions, put them in different namespaces > — named to indicate the layers in your hierarchy — and leave them all > public. > > That creates a much more reusable, extensible code base. IMO (now — I > didn’t think that way five years ago). > > Sean Corfield -- (904) 302-SEAN > An Architect's View -- http://corfield.org/ > > "Perfection is the enemy of the good." > -- Gustave Flaubert, French realist novelist (1821-1880) > > > > -- > 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 unsubscribe from this group and stop receiving emails from it, send an > email to clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- 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 unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.