I am having some problem with the if-then-else syntax in the .input files.

Problem 1: I refer to the axiom book which ships with the program (version 2005/09). At page 204 it says that the usual rules for piling are suspended in conditional expressions and it gives 5 different ways which should be equivalent, namely:

if i>0 then output("positive") else output("nonpositive")

if i > 0 then output("positive")
  else output("nonpositive")

if i > 0 then output("positive")
else output("nonpositive")

if i > 0
then output("positive")
else output("nonpositive")

if i > 0
  then output("positive")
  else output("nonpositive")


Well, I tried all of them, creating each time a blank r.input file with inside only

i := 2

followed by one of the "if...".

The result is that the first two are ok, where as the other three give some syntax error (different each time).

So: what is happening? Is the book wrong?!?!

Problem 2: again with if then else, in a complex function I noticed a wrong result (the function itself was ok... ;-)
Simplifying, you can produce the same error with something like:

test: (INT,INT) -> List(INT,INT)
test(a,b) ==
 x := 0; y := 0
 if (a rem b = 0) and b < 0 then
  x := 1 ; y := 1
 [x,y]

Then, test(4,-2) returns correctly [1,1], but test(4,-3) or test(4,2) returns wrongly [0,1]. The same happens if I write

 if (a rem b = 0) and b < 0 then  x := 1 ; y := 1

Why?

Another small question. Is there a way to obtain on line the syntax of a command in a more extensive way? I mean, for example, that writing
(3) -> )di op extendedEuclidean

I get

(3) ->
There are 2 exposed functions called extendedEuclidean :
   [1] (D,D,D) -> Union(Record(coef1: D,coef2: D),"failed") from D
            if D has EUCDOM
   [2] (D,D) -> Record(coef1: D,coef2: D,generator: D) from D if D has
            EUCDOM

which is not too useful. Moreover, how can I just ask about, say, the second function extendedEuclidean?

If I wanted to ask about the syntax of if-then-else, I would like to write
something like
)? if
or
)ap if

but nothing gives clues on how to use it.


Thank you for all your help

Fabio Stumbo


_______________________________________________
Axiom-math mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/axiom-math

Reply via email to