[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
## [Axiom-developer] [#187 trouble with tuples] functions are objects of ty

**From**: |
Bill Page |

**Subject**: |
[Axiom-developer] [#187 trouble with tuples] functions are objects of type Mapping |

**Date**: |
Sun, 03 Jul 2005 22:48:32 -0500 |

Changes
http://page.axiom-developer.org/zope/mathaction/187TroubleWithTuples/diff
--
Bill Page wrote:
>* I think such tuples should be Products ... *
>*From page 246 of the Axiom book:*
"The type of a function is always a mapping of the form
Source -> Target where Source and Target are types."
and from page 1085:
"Domains Mapping, Record, and Union are primitive domains. All
other domains are written in the Axiom programming language ..."
\begin{axiom}
)show Mapping
Mapping(String,INT,Float)
\end{axiom}
>*From a mathematical point of view clearly the idea that*
Mapping(T, A, B) denotes the class of mappings from (A, B)
into T implies that (A,B) denotes some kind of set, i.e.
the Product(A,B).
William Sit wrote:
>* I don't agree. When one wraps up something into a single object,*
>* it is inconvenient to look at the parts without unwrapping.*
But [Cartesian Product] is implemented as a Record and the
domain Record is a primative in Axiom. So my proposal above
amounts to stating, for example, that:
\begin{axiom}
f1:Record(a:INT,b:FLOAT)->FLOAT
f1(arg)==arg.b+arg.a
f1[1,1.1]
\end{axiom}
should be viewed as equivalent to
\begin{axiom}
f2:(INT,FLOAT)->FLOAT
f2(a,b)==a+b
f2(1,1.1)
\end{axiom}
And in fact after a simple optimization, the compiler should
be able to produce equivalent internal lisp code.
--
forwarded from http://page.axiom-developer.org/zope/mathaction/address@hidden

[Prev in Thread] |
**Current Thread** |
[Next in Thread] |

**[Axiom-developer] [#187 trouble with tuples] functions are objects of type Mapping**,
*Bill Page* **<=**