Post Reply 
[BUG] When Textbook display is off, == is displayed as = and weird conversions
03-10-2014, 05:10 PM (This post was last modified: 03-10-2014 05:11 PM by Stefan.)
Post: #1
[BUG] When Textbook display is off, == is displayed as = and weird conversions
I am not sure whether this is a bug. At least its confusing:
I stumbled about it when I defined a CAS function:
Code:
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):
Code:
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:
Code:
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:
Code:
phi:=(n)->sum(seq(ifte(gcd(k,n)==1, 1, 0),k,1,n))

Which then leads to an output:
Code:
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!
Code:
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...
Find all posts by this user
Quote this message in a reply
Post Reply 




User(s) browsing this thread: 1 Guest(s)