2011/1/21 Aaron Bedra <[email protected]>
> On 01/21/2011 12:51 AM, Ken Wesson wrote:
>
>> On Fri, Jan 21, 2011 at 12:40 AM, Alex Baranosky
>> <[email protected]> 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 [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en