On May 30, 12:18 pm, Stuart Halloway <stuart.hallo...@gmail.com>
wrote:
> Hi jbs,
>
> Not sure why the title of this post is about "size" instead of "protection", 
> but why don't you just use private functions in Clojure?
>
> (defn- my-little-helper [] "visible only in my namespace" ...)
>
> Note the "-" on the end of defn, which is idiomatic for introducing a private 
> var. You can also do this with explicit {:private true} metadata on the name.
>
> Cheers,
> Stu
>
>
>
> > 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

Thanks.  I hadn't noticed (defn- foo []) in the API.  This seems
exactly what I'm looking for.

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