HP Forums

Full Version: [BUG] When Textbook display is off, == is displayed as = and weird conversions
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I am not sure whether this is a bug. At least its confusing:
I stumbled about it when I defined a CAS function:
phi:=(n)->sum(seq(IF gcd(k,n)==1 THEN 1; ELSE 0; END),k,1,n)

So the first confusion: The "==" which is written in the input is converted to "=" in the history if Textbook display is off (2nd page of Home settings). I remember this thread where Parisse mentions that == should not be used to compare expressions. But since gcd() just returns a number here I guess it should be okay here.

Other confusions:
Other modifications are also somewhat confusing (letting away the ELSE part):
phi:=(n)->sum(seq(IF (gcd(k,n))=1 THEN 1; END),k,1,n)

From now on Textbook display is switched on: Then the history look as follows:
phi:=(n)->sum(seq(ifte([gcd(k,n)==1  1 0]),k,1,n)

So the IF THEN... gets changed to ifte(). But confusion doesn't end here. After I discovered the handy "ifte()" command because of the previously mentioned output I modified my input as follows:
phi:=(n)->sum(seq(ifte(gcd(k,n)==1, 1, 0),k,1,n))

Which then leads to an output:
phi:=(n)->sum(seq(when(gcd(k,n)==1, 0),k,1,n))

Now lets switch of Textbook display again.
If you then type the above into the input line, the output is AGAIN different, now using the ternary operator, plus a shitload of brackets!
phi:=(n)->sum(seq(((((gcd(k,n))==1)) ? 1 : 0),k,1,n))

I am close to say "thank you" to the prime for this nice little tour over all possible variants of conditional clauses :-D. But I'd appreciate if the output would be close to what I typed as input...
Reference URL's