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-unresolved-vars* *assert* *fn-loader* *math-context* *source-path*
*use-context-classloader* *verbose-defrecords* -cache-protocol-fn
-reset-methods EMPTY-NODE await1 chunk chunk-append chunk-buffer chunk-cons
chunk-first chunk-next chunk-rest chunked-seq? destructure
find-protocol-impl find-protocol-method hash-combine method-sig munge
primitives-classnames print-ctor print-dup print-method print-simple
proxy-call-with-super proxy-name unquote unquote-splicing
with-loading-context)



On Fri, Oct 4, 2013 at 3:48 PM, Gary Trakhman <gary.trakh...@gmail.com>wrote:

> 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 marked
> 'private'.  Seems like anything else is fair-game, with java bits being a
> clear delineation of host-specific functionality.
>
>
> On Fri, Oct 4, 2013 at 4:20 PM, John D. Hume <duelin.mark...@gmail.com>wrote:
>
>> 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
>> let, loop, and maybe others as special forms than to tell you they're
>> macros that expand into uglier calls to special forms, and then go on to
>> document (and support the APIs of) clojure.core/destructure and the less
>> sugary, true special forms (let*, loop*, and maybe others).
>>
>> It's probably safe to assume these are implementation details that won't
>> necessarily hold in other dialects of Clojure and that breaking changes in
>> that layer might be introduced in a future version of Clojure and would not
>> be considered a backwards-incompatible change by the maintainers.
>>
>>
>>
>> On Fri, Oct 4, 2013 at 2:47 PM, Amrut <amrut.jo...@gmail.com> wrote:
>>
>>> Thanks. I went through the checkins and looks like it was changed 
>>> here.<https://github.com/clojure/clojure/commit/3129be6d80d315e3be2f77dadcf7e904fc6015f5>
>>>  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 Trakhman wrote:
>>>
>>>> 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<https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/Compiler.java#L39>
>>>>
>>>>
>>>> On Fri, Oct 4, 2013 at 2:27 PM, Amrut <amrut...@gmail.com> wrote:
>>>>
>>>>> Hello,
>>>>>
>>>>> According to this <http://clojure.org/special_forms>, "let" is a
>>>>> special form. but the 
>>>>> source<http://clojuredocs.org/clojure_core/clojure.core/let> tells
>>>>> me that it's a macro that uses let*. I could not find any info on let* 
>>>>> form.
>>>>> Can someone please explain what is happening here?
>>>>>
>>>>> TIA
>>>>>
>>>>> --
>>>>> --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "Clojure" group.
>>>>> To post to this group, send email to clo...@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+u...@**googlegroups.com
>>>>>
>>>>> For more options, visit this group at
>>>>> http://groups.google.com/**group/clojure?hl=en<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+u...@**googlegroups.com.
>>>>>
>>>>> For more options, visit 
>>>>> https://groups.google.com/**groups/opt_out<https://groups.google.com/groups/opt_out>
>>>>> .
>>>>>
>>>>
>>>>  --
>>> --
>>> 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.
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>
>>
>>
>> --
>> http://elhumidor.blogspot.com/
>>
>> --
>> --
>> 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.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>
>  --
> --
> 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.
> For more options, visit https://groups.google.com/groups/opt_out.
>



-- 
http://elhumidor.blogspot.com/

-- 
-- 
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.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to