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.

Reply via email to