On 01/21/2011 09:22 AM, Laurent PETIT wrote:
2011/1/21 Aaron Bedra <[email protected]
<mailto:[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]
<mailto:[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=>
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 [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