Re: Type of let form

2013-10-04 Thread Brandon Bloom
I agree, it's clear that this is intentional. The promised public API is the "let" form; "let*" is an implementation detail. Clojure and ClojureScript already have subtly different internal special symbols. For example: try vs try*. Unfortunately, this implementation detail leaks out in the mac

Re: Type of let form

2013-10-04 Thread John D. Hume
It seems like at least a gray area. Notably, clojure.core/destructure is one of only 35 undocumented (via metadata) public vars out of almost 600 in clojure.core. Here's the full list (1.5.1): (->> 'clojure.core ns-publics vals (filter (comp nil? :doc meta)) (map #(.sym %)) sort) (*allow-unresolve

Re: Type of let form

2013-10-04 Thread Gary Trakhman
I agree user code probably shouldn't rely on the details of what's a special form and what isn't. However, I see no problem with using destructure in user code, I've done so myself, and I don't think it's necessarily platform-specific. It's more obvious the intent when things are intentionally ma

Re: Type of let form

2013-10-04 Thread John D. Hume
This seems intentional, not a case of docs lagging behind. If you look at the source of let you can see that it has :special-form true in its metadata so that it will remain documented as special even though it's just a macro. I assume the thinking is that it's more useful to continue to document

Re: Type of let form

2013-10-04 Thread Amrut
Thanks. I went through the checkins and looks like it was changed here. This was 6 years back. Maybe it's time to update the documentation for special forms. On Friday, October 4, 2013 11:41:22 AM UTC-7, Gary T

Re: Type of let form

2013-10-04 Thread Gary Trakhman
The definitive authority on what is a special form and what isn't is Compiler.java: https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/Compiler.java#L39 On Fri, Oct 4, 2013 at 2:27 PM, Amrut wrote: > Hello, > > According to this , "let" is a s