[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
## [Axiom-math] if-then-else: what is wrong?

**From**: |
Fabio S. |

**Subject**: |
[Axiom-math] if-then-else: what is wrong? |

**Date**: |
Thu, 19 Jan 2006 11:53:25 +0100 (CET) |

`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] if-then-else: what is wrong?**,
*Fabio S.* **<=**