IMO that's the job of a "linter"-style tool, which can be written easily
with `analyze`.

On Tue, Feb 12, 2013 at 11:58 PM, Michael Wood <esiot...@gmail.com> wrote:

> It might be useful, though, to be able to enable warnings for shadowed
> variables.
>
> On 12 February 2013 17:38, Timothy Baldridge <tbaldri...@gmail.com> wrote:
> > This sort of pattern is used quite a lot in clojure (even in core):
> >
> > (let [data (if (string? data) (read-string data) data)
> >       data (if (string? (first data)) (first data) (next data))
> >       data (if (string? (first data)) (first data) (next data))]
> >      data)
> >
> > Throwing exceptions on overridden variable names would not only break
> > Clojure code, but also is very "non-lispy".
> >
> > Timothy
> >
> >
> >
> > On Tue, Feb 12, 2013 at 6:31 AM, AtKaaZ <atk...@gmail.com> wrote:
> >>
> >> it makes sense to not throw now that I think about it, when using "_"
> >> instead of "a"
> >> I'm also thinking of cases like:
> >> => (let [a 1]
> >>      (let [b 2 a 3]
> >>        (println a b)))
> >> 3 2
> >> nil
> >>
> >> is there something that would let me know I'm overwriting "a" ? I figure
> >> if something like this would slip by would be tough to track down
> >>
> >>
> >> On Tue, Feb 12, 2013 at 1:46 PM, Michael Wood <esiot...@gmail.com>
> wrote:
> >>>
> >>> On 12 February 2013 12:28, AtKaaZ <atk...@gmail.com> wrote:
> >>> > what would this do:
> >>> >
> >>> > (let [a 1, a 2] a)
> >>> > becomes:
> >>> > (let [a 1, a123 2] a)
> >>> > or
> >>> > (let [a 1, a123 2] a123)
> >>> > or
> >>> > exception[I prefer]
> >>>
> >>> It would be the second option, i.e.:
> >>>
> >>> (let [a 1, a123 2] a123)
> >>>
> >>> The original code is valid, so it would not throw an exception.
> >>>
> >>> > On Tue, Feb 12, 2013 at 7:10 AM, Ambrose Bonnaire-Sergeant
> >>> > <abonnaireserge...@gmail.com> wrote:
> >>> >>
> >>> >> Processing a hygienic AST relieves the burden of worrying about
> >>> >> shadowing
> >>> >> of locals.
> >>> >>
> >>> >> Wherever a binding would normally be shadowed, it is instead renamed
> >>> >> to a
> >>> >> local binding currently not in scope.
> >>> >>
> >>> >> eg. (let [a 1, a a] a)
> >>> >>
> >>> >> becomes
> >>> >>
> >>> >> (let [a 1, a123 a] a123)
> >>> >>
> >>> >> It can be useful for those processing Clojure's analysis results.
> >>> >>
> >>> >> Thanks,
> >>> >> Ambrose
> >>> >>
> >>> >>
> >>> >> On Tue, Feb 12, 2013 at 1:54 AM, kovas boguta <
> kovas.bog...@gmail.com>
> >>> >> wrote:
> >>> >>>
> >>> >>> What is a hygienic AST?
> >>> >>>
> >>> >>> Thanks
> >>> >>> k
> >>> >>>
> >>> >>>
> >>> >>> On Sun, Feb 10, 2013 at 10:45 PM, Ambrose Bonnaire-Sergeant
> >>> >>> <abonnaireserge...@gmail.com> 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 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.
> >>> >>>
> >>> >>>
> >>> >>
> >>> >> --
> >>> >> --
> >>> >> 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.
> >>> >>
> >>> >>
> >>> >
> >>> >
> >>> >
> >>> >
> >>> > --
> >>> > Please correct me if I'm wrong or incomplete,
> >>> > even if you think I'll subconsciously hate it.
> >>> >
> >>> > --
> >>> > --
> >>> > 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.
> >>> >
> >>> >
> >>>
> >>>
> >>>
> >>> --
> >>> Michael Wood <esiot...@gmail.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.
> >>>
> >>>
> >>
> >>
> >>
> >> --
> >> Please correct me if I'm wrong or incomplete,
> >> even if you think I'll subconsciously hate it.
> >>
> >> --
> >> --
> >> 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.
> >>
> >>
> >
> >
> >
> >
> > --
> > “One of the main causes of the fall of the Roman Empire was that–lacking
> > zero–they had no way to indicate successful termination of their C
> > programs.”
> > (Robert Firth)
> >
> > --
> > --
> > 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.
> >
> >
>
>
>
> --
> Michael Wood <esiot...@gmail.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.


Reply via email to