[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Calc: `*' binds more strongly than `/'
From: |
Christian Schlauer |
Subject: |
Re: Calc: `*' binds more strongly than `/' |
Date: |
Thu, 26 Apr 2007 23:07:45 +0200 |
User-agent: |
Gnus/5.11 (Gnus v5.11) Emacs/22.0.98 (gnu/linux) |
Jay Belanger <address@hidden> writes:
> Christian Schlauer <address@hidden> writes:
[...]
>> I did some more `research', and a*b/c*d is not bad form, and it is a
>> properly written expression, see Wikipedia. Let me cite from
>> <http://en.wikipedia.org/wiki/Order_of_operations#Examples_from_arithmetic>:
>
> As I said, there are rules for interpreting the above expressions.
> I also said that avoiding the parentheses is bad form; note that the
> wikipedia article also says:
>
> Proper use of parentheses and other grouping symbols
>
> When restricted to using a straight text editor, parentheses (or
> more generally "grouping symbols") must be used generously to make
> up for the lack of graphics, like square root symbols. Here are some
> rules for doing so:
>
> 1) Whenever there is a fraction formed with a slash, put the
> numerator (the number on top of the fraction) in one set of
> parentheses, and the denominator (the number on the bottom of the
> fraction) in another set of parentheses. This is not required for
> fractions formed with underlines:
> y = (x+1)/(x+2)
> ...
> 5) An exception to the rules requiring parentheses applies when only
> one character is present. While correct either way, it is more
> readable if parentheses around a single character are omitted:
>
> y = (3)/(x) or y = 3/x
>
> y = (3)/(2x) or y = 3/(2x)
I saw those examples, too, but didn't read the text of that section,
as all examples there use `+', and then of course one needs
parentheses -- otherwise it is *really* wrong. But the last line I
cite from you is exactly what Calc is ignoring and what I `complain'
about:
y = 3/(2x)
So despite the `juxtaposition operator' (I had to check what this
means, <http://en.wiktionary.org/wiki/juxtaposition> says "An absence
of multiplication symbols, `ab' instead of `a times b'"), they suggest
to write the denominator with parentheses to bind the `x' to `2'.
Let's ignore for a moment the `juxtaposition operator' and use `*': in
the current Calc you can write `y = 3/2*x' when what you want Calc to
do is `y = 3/(2*x)', and *that* is really not what I'd expect from
mathematics software after reading the Wikipedia article -- because
according to what you cite above from Wikipedia, the `x' in `y =
3/2*x' does definitely not belong to the denominator. But in Calc, it
does. :-(
If you want, let Calc interpret `y = 3/2x' as `y = 3/(2x)', in order
to let the `juxtaposition operator' have precedence -- but `y = 3/2*x'
should _never_ be treated in that way.
>> So besides Excel, Gnumeric, MATLAB, all pocket calculators, Wikipedia
>> agrees with me, too.
>
> Well, wikipedia also says
>
> Calculators
>
> Different calculators follow different orders of operations.
>
> and gives several examples.
But these examples refer to only two cases:
1) Cheaper calculators without a stack work left to right without any
priority given to different operators, for example giving
1+2*3=9
while more sophisticated calculators will use a more standard
priority, for example giving
1+2*3=7.
2) Two different TI models that differ in the interpretation of a^b^c:
one sees it as (a^b)^c, the other as a^(b^c).
That the TI models differ concerning a^b^c is unfortunate, but on the
basis of this Wikipedia article I still say that
- all pocket calculators _that consider the order of operators_ treat
/ and * as equal and evaluate from left to right in the absence of
parentheses and
- the behaviour of pocket calculators starts to differ with
expressions like a^b^c, which some evaluate left-to-right, as they
do with other operators, while others (the better ones, IMO -- Calc
included, see (info "(calc)Algebraic Tutorial"): `2^3^4' is
equivalent to `2^(3^4)') evaluate this from right-to-left.
> For those that really don't like parentheses, an option to allow the
> user to decide for themselves the relative precedence of * and / in
> Calc will be added, of course.
That sounds good, but what will be the default? I really think that
the Wikipedia article has more than enough evidence against Calc's
current behaviour.
Regards,
Christian
- Re: Calc: `*' binds more strongly than `/', (continued)
- Re: Calc: `*' binds more strongly than `/', Jay Belanger, 2007/04/25
- Re: Calc: `*' binds more strongly than `/', Stefan Monnier, 2007/04/25
- Re: Calc: `*' binds more strongly than `/', Jay Belanger, 2007/04/26
- Re: Calc: `*' binds more strongly than `/', Stefan Monnier, 2007/04/26
- Re: Calc: `*' binds more strongly than `/', Christian Schlauer, 2007/04/26
- Re: Calc: `*' binds more strongly than `/', Davis Herring, 2007/04/26
- Re: Calc: `*' binds more strongly than `/', Stefan Monnier, 2007/04/26
- Re: Calc: `*' binds more strongly than `/', Luc Teirlinck, 2007/04/26
- Re: Calc: `*' binds more strongly than `/', Christian Schlauer, 2007/04/26
- Re: Calc: `*' binds more strongly than `/', Luc Teirlinck, 2007/04/26
- Re: Calc: `*' binds more strongly than `/',
Christian Schlauer <=
- Re: Calc: `*' binds more strongly than `/', Jay Belanger, 2007/04/26
- Re: Calc: `*' binds more strongly than `/', Davis Herring, 2007/04/26
- Re: Calc: `*' binds more strongly than `/', Jay Belanger, 2007/04/17
- Re: Calc: `*' binds more strongly than `/', Christian Schlauer, 2007/04/18
- Re: Calc: `*' binds more strongly than `/', Daniel Brockman, 2007/04/18
- Re: Calc: `*' binds more strongly than `/', Christian Schlauer, 2007/04/22
- Re: Calc: `*' binds more strongly than `/', Daniel Brockman, 2007/04/26
- RE: Calc: `*' binds more strongly than `/', Drew Adams, 2007/04/19
- Re: Calc: `*' binds more strongly than `/', David Kastrup, 2007/04/19
- RE: Calc: `*' binds more strongly than `/', Drew Adams, 2007/04/19