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.