In a private chat (I will not expose their names, but they may feel free to
identify themselves in this thread) someone posed a question:

Anyone know why the multi-arity version of `defn` takes an extra optional
`attr-map?` argument?
https://github.com/clojure/clojure/blob/clojure-1.10.1/src/clj/clojure/core.clj#L290

Someone in the chat offered:

I am sure someone wanted to do (->> {:more :metadata} (defn ... )) and
fixed the issue right there.

Someone else in the chat did some detective work and this is what she came
up with:

* defn went from a simple form that could only create single arity
definitions to the current multiple-arity definitions, and when it did
this, it introduced the metadata options. Back then, all of this was in
src/boot.clj. The checkin was 23df286 on Mar 7, 2008
<https://github.com/clojure/clojure/commit/23df28671fe46d4a39d2aadc36262c9dae1f406a>
https://github.com/clojure/clojure/commit/23df28671fe46d4a39d2aadc36262c9dae1f406a
* Rich updated defn in 2009 and it was in there prior to that.
* Alex added the extra arglists entry that describes it in 2011.

So the multiple attr-map? values have been around since attr-maps were
first introduced. No explanation why

Anyone know why?

-- 
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
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/clojure/CAEToNjhYaoGCL442u24f_fzQEXmbjtjdfFYqYyM8sXC%3D7S9FkA%40mail.gmail.com.

Reply via email to