Hi Ralf, Martin, Gaby and all,

I agree with all the Ralf mail, but I pain to explain that I don't see
how to use easily pairs/tuples in axiom when the coordonates aren't 
of the same type (so I don't speak about Complex which can be a Vector)
By example (Integer, Float).

Of corse I may use List Any, 
but I don't think it's the better description of a pair/couple.
There is no one type control.

There are 
1/ List for sequences of the same type         L := [11,22,33]
2/ Vector for linear algebra                   V := vector [a,a+1,a+2]
3/ Set if we don't look at the order           S := {4,5,6} or set [4,5,6]
4/ Cross / Record / DirectProduct for product  
   but there is no natural/mathematical syntax.
   A mathematical consistent syntax might be 
   RR := [| 12, 5.0e-7 |] ; RR.1 ; RR.2

The actual Axiom forces to declare the record and choose the field name :
RR : Record (a:Integer, b:Float) := [12, 5.0e-6] 

This semantic is far from the other data structures. 

I expect to have a syntax as near as possible as other data structures.
So don't have to declare the record and don't choose the field name.

Martin proposes to hide Any. 
I agree that it might create other usability problems.
an other operator as [|...|] reduces this conflict.

[Martin]> However, turning to Axiom again, as soon as we have a type Any in
> scope, the interpreter has no way to know whether we mean List Any
> or Record(String, INT) with ["a", 1].

> We could, of course, unexpose Any, and introduce unnamed Records, a
> function explode and multiple values.  I'm not sure whether this
> wouldn't create other usability problems.

For Ralf :
----------

> if you work in the interpreter, it is probably reasonable to use some
> Record construction. However, if you do serious programming [...]

I approve axiom promotes 
> [...] a "mathematical" domain instead of just such a thumb (record)
> data structure.

For an educational purpose we often must code one or two loops or
tests.  And I can only use interpreter with students. My purpose is
about this << concrete >> mathematics, not teach a new language 
and the domains.

A common example
----------------

But imagine I study a sequence u(n) of rational number 
where u(0) is an integer a.

I want to see when u(n) is near of the real limit l.
So I buld a list of interessing data (for a next plot).

Record (index : NNI = n, initial : INT= a, val : RationalNumber = u(n), 
        error : Float = u(n) - l)

Sometime ago Alasdair looks for a pretty 
> >> for n in 10..30 repeat output [n, factor(2^n-1)]

Francois

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
open-axiom-devel mailing list
open-axiom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open-axiom-devel

Reply via email to