My educated guess is that each symbol has a separate representation 

analyze.hygienic=> (-> (ast (let [a 1 a a b a a a] a)) ast-hy emit-hy)
((fn* ([] (let* [a 1 a2921 a b a2921 a2922 a2921] a2922))))

In this example the first a is a in the AST the second one is a2921

This prevents collisions when working with the AST, gensyms in macros 
achieve similar results

I guess this is useful in typed Clojure or similar tools to perform type 
checking 

Ronen

On Monday, February 11, 2013 7:54:31 PM UTC+2, kovasb wrote:
>
> What is a hygienic AST? 
>
> Thanks 
> k 
>
>
> On Sun, Feb 10, 2013 at 10:45 PM, Ambrose Bonnaire-Sergeant 
> <abonnair...@gmail.com <javascript:>> wrote: 
> > Hi everyone, 
> > 
> > Happy to release analyze 0.3.0 with new hygienic code transformation 
> > capabilities. 
> > 
> > [analyze "0.3.0"] 
> > 
> > In a line: 
> > 
> > analyze.hygienic=> (-> (ast (let [a 1 a a b a a a] a)) ast-hy emit-hy) 
> > ((fn* ([] (let* [a 1 a2921 a b a2921 a2922 a2921] a2922)))) 
> > 
> > Hygienic AST's have enabled large performance boosts in core.typed. I'm 
> > excited to see how it could 
> > be as useful to others. 
> > 
> > Note: "hygienic" AST's (those transformed with `analyze.hygienic/ast-hy` 
> can 
> > be printed normally with `analyze.emit-form/emit-form`, and hygienically 
> > with `analyze.hygienic/emit-hy`. 
> > 
> > https://github.com/frenchy64/analyze 
> > 
> > Thanks, 
> > Ambrose 
> > 
> > -- 
> > -- 
> > 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<javascript:> 
> > 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 <javascript:> 
> > 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+u...@googlegroups.com <javascript:>. 
> > 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.


Reply via email to