axiom-developer
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Axiom-developer] Minimal Algebra


From: Francois Maltey
Subject: Re: [Axiom-developer] Minimal Algebra
Date: 26 Mar 2006 14:58:16 +0200
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.4

"Antoine Hersen" <address@hidden> writes:

> While reading the Axiom in the class room message I got this idea.
> 
> What about starting with an almost blank Axiom, and re building up
> everything in a naive and minimal but instructive way ?

> How should one do it ?
 
For this use of the interpreter :
1/ it must be possible to describe shortly a consistent minimal language.
2/ this kernel must be (almost) bug free
3/ this langage must contain pretty notions, even if they are news.
4/ the documentation must exist and be short.

---------------// 1 // 

Of corse axiom kernel has very pretty concepts.
I love stream, typed object, category, etc.
I think that the first point is  possible, but might be better.

one example of what I'm waiting : 

List are fine for studying cartesian product of set as E^n.

In mathématics we use cartesian products of differents set.
The other cas aren't so typed, so List are fine for it.
But axiom is typed and 
a- List of Any aren't so interressing.
b- for output result axiom seems to use record
   so it seem logical to use record for input data.
   but with record we must add the name of each field, 
   and we can't easily coerce (E x F) x G and E x (F x G) in E x F x G.
   There is no function concat for record.
c- turple is only a syntaxic notion.
d- The product domain is a good idea but only work for 2 sets.

I don't see this problem with mupad or maple because theses CAS 
aren't so typed.

So I'm waiting a constructor as [|x,y,z|] for E x F x G with functions as 
P.1, P.2, first, rest, etc.
I don't like makeRecord because list have [....] and I expect 
a similar syntax. 
and neither makeRecord nor Product have hightlevel functions.

---------------// 2 // 

I get bugs after some uses of anonymous functions.
So I can't do a course with a lot of map, select, etc.
 
I don't want to use axiom as a imperatif language as basic, C, Pascal...
For my students I prefer functional language. 
The mathematical work is more efficient.

So this year I don't show to my students what axiom can do.
My main course must be done with maple, and I give some examples with mupad.

---------------// 3 // 

Today it's possible to have more complete language in an interpretor. 

axiom have not post-fixed operator. I prefer 4! to factorial 4.
It's possible to compose functions without composition operator, but
it's less interessing. 
mupad and maple allows cos@@100 1.0 : the result is (cos (cos (cos... 1.0)))

optional parameter are very usefull. 
mupad sort function on list works as the axiom one, but it's possible to
add a boolean function for sorting as an optional parameter. 
I can't do this with axiom.

In mupad there is only ONE function rewrite with optional parameter
rewrite (..., exp), rewrite (..., sincos), rewrite (..., sinhcosh) 
rewrite (..., ln)
The lot of such functions in axiom are more difficult to restrain.
mupad expand and combine have the same abilities.

maple and mupad construct this list with 100 elements.
[[i,j] $i=1..10 $j=1..10]
with axiom I can't do with ONE call :
I must? use concat and create List List List Integer before concat
concat [[[i,j] for i in 1..10] for j in 1..10].

---------------// 4 // 

I try to write a minimal description of axiom for this use. 
two or three years ago I done this for mupad. 
If you want I can send a private mail with this short text in French.

So I see the difference with axiom, 
and I see also that some notions are obviously missing in axiom.
 
Conclusion :
I believe it's possible to improve quickly axiom interpreter.
if a document describes main notions of axiom.
One time theses main notions are described it's easy to see how 
to do one exercice or an other.

I hope I won't wait 30 years !

Francois, living in France.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]