2011/1/21 Aaron Bedra <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>  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=>


Cheers,

-- 
Laurent

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