Sure. I'm not saying that you can't write it yourself. My point was,
that

a) This is essential to writing understandable code, so it would be
nice if the language supported it out of the box
b) A namespace feels to me like a set of functions (ns-publics
actually returns a map). That Clojure enforces a particular ordering
(if we forget about the "declare" kludge) while writing a namespace
seems arbitrary from a programmers point of view.

Jan

On Feb 10, 9:43 am, Laurent PETIT <laurent.pe...@gmail.com> wrote:
> Hi,
>
> Create & use dotopdown (or doreverse, name it as you like):
>
> user=> (defmacro dotopdown [& body] `(do ~@(reverse body)))
> #'user/dotopdown
> user=> (dotopdown (defn abstract [a] (helper a)) (defn helper [a] (str a)))
> #'user/abstract
> user=> (abstract 30)
> "30"
>
> ;)
>
> 2011/2/9 jkrueger <jan.krue...@gmail.com>
>
> > When writing a Clojure namespace very often I would like to sort my
> > functions according to level of abstraction, starting with the most
> > abstract functions, followed by helper functions to the more abstract
> > functions, and so on. This way of organizing code is promoted as good
> > style by the Clean Code guys. However, to do this in Clojure one would
> > have to declare almost every function in the namespace before actually
> > defining it, since namespaces are interpreted top-down. This strikes
> > me as very ugly. Since other functional languages like Haskell manage
> > to avoid this problem, I would like to suggest that Clojure should
> > provide a way to support this organizational scheme in the future.
>
> > --
> > 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

Reply via email to