On 01/21/2011 09:22 AM, Laurent PETIT wrote:
2011/1/21 Aaron Bedra <aaron.be...@gmail.com <mailto:aaron.be...@gmail.com>>

    On 01/21/2011 12:51 AM, Ken Wesson wrote:

        On Fri, Jan 21, 2011 at 12:40 AM, Alex Baranosky
        <alexander.barano...@gmail.com
        <mailto:alexander.barano...@gmail.com>>  wrote:

            I've wanted to have private defs.  For defn, I just us
            defn-.  But there is
            no def-

            So I just use:

            (defmacro def- [name&  decls]
                (list* `def (with-meta name (assoc (meta name)
            :private true)) decls))

        There's a (defvar- ...) in clojure.contrib. Why there's
        nothing like
        this in core remains a mystery to me. :)

    You can also do

    (def foo {:private true} (...))


With def, it will be :
user=> (def ^{:private true} foo "ba")
#'user/foo
user=> (meta (var foo))
{:ns #<Namespace user>, :name foo, :file "NO_SOURCE_PATH", :line 4, :private true}
user=>

It's with defn that you can use a map at a certain position:
user=> (defn foo {:private true} [] "bar")
#'user/foo
user=> (meta (var foo))
{:ns #<Namespace user>, :name foo, :file "NO_SOURCE_PATH", :line 7, :arglists ([]), :private true}
user=>


Doh! I'm full of typos this week. Do a combination of what I meant and what Laurent said and you'll be in a good place.

Cheers,

Aaron Bedra
--
Clojure/core
http://clojure.com

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