Hello,
and what about something like that ?

a @ b @ c  ->  (a @ b) @ c
a * b @ c  ->  (a * b) @ c
a @ b * c  ->  a @ (b * c)

Easy to remember. The *-product has priority to @-product, and then we just
to @-product from left to right.

An advantage of this is that parsers do job from left to right so I realy
think that is a better choice than the weak-right.

Christophe BAL



2014-03-17 21:37 GMT+01:00 Russell E. Owen <ro...@uw.edu>:

> In article
> <CAPJVwBkLww7-ysZB76LMRZ+mmbyN_5T=ym_vu1pjgakrlbq...@mail.gmail.com>,
>  Nathaniel Smith <n...@pobox.com> wrote:
>
> > OPTION 1 FOR @:
> > Precedence: same as *
> > Associativity: left
> > My shorthand name for it: "same-left" (yes, very creative)
> >
> > This means that if you don't use parentheses, you get:
> >    a @ b @ c  ->  (a @ b) @ c
> >    a * b @ c  ->  (a * b) @ c
> >    a @ b * c  ->  (a @ b) * c
> >
> > OPTION 2 FOR @:
> > Precedence: more-weakly-binding than *
> > Associativity: right
> > My shorthand name for it: "weak-right"
> >
> > This means that if you don't use parentheses, you get:
> >    a @ b @ c  ->  a @ (b @ c)
> >    a * b @ c  ->  (a * b) @ c
> >    a @ b * c  ->  a @ (b * c)
> >
> > OPTION 3 FOR @:
> > Precedence: more-tightly-binding than *
> > Associativity: right
> > My shorthand name for it: "tight-right"
> >
> > This means that if you don't use parentheses, you get:
> >    a @ b @ c  ->  a @ (b @ c)
> >    a * b @ c  ->  a * (b @ c)
> >    a @ b * c  ->  (a @ b) * c
> >
> > We need to pick which of which options we think is best, based on
> whatever
> > reasons we can think of, ideally more than "hmm, weak-right gives me warm
> > fuzzy feelings" ;-). (In principle the other 2 possible options are
> > tight-left and weak-left, but there doesn't seem to be any argument in
> > favor of either, so we'll leave them out of the discussion.)
>
> After seeing all the traffic on this thread, I am in favor of
> "same-left" because it is easiest to remember:
> - It introduces no new rules.
> - It is unambiguous. If we pick option 2 or 3 we have no strong reason
> to favor one over the other, leaving users to guess.
>
> To my mind, being able to easily reason about code you are reading is
> more important that hoping to increase efficiency for one common case
> when not using parenthesis.
>
> It also has the advantage that it needs the least justification.
>
> -- Russell
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion@scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to