I'm new to Clojure and have a long background in Java.  After writing
Clojure code for a month or so now, I find myself struggling with
function size.  If I have expressions that can be grouped by
association, then I can re-factor these expression(s) into a
function.  However, the newly re-factored function is then accessible
outside the (let []) of the function from which I'll access it.  This
seems wrong since my new function is only intended to be accessed from
it's calling function.

In Java, code separation is encouraged to promote cohesion.  Classes
are intended to be small and single purpose in nature.  The class's
public method(s) are intended to provide the interface (or api) by
which the functionality of the class is accessed.  In Java I can
constrain access to a method by declaring it private making it
invisible to calling classes.

For Clojure I'd like to be able to specify the function or set of
functions that expose the api of a namespace without implying that
every function in the namespace is meant to be accessed directly.

-jbs


-- 
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