[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. <=