axiom-math
[Top][All Lists]

## [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 :
 (D,D,D) -> Union(Record(coef1: D,coef2: D),"failed") from D
if D has EUCDOM
 (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

```