[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Axiom-developer] Re: [Axiom-math] Re: musings on notation
From: |
Daniel Yokomiso |
Subject: |
[Axiom-developer] Re: [Axiom-math] Re: musings on notation |
Date: |
Thu, 12 Aug 2004 11:00:55 -0300 |
----- Original Message -----
From: "root" <address@hidden>
To: <address@hidden>
Cc: <address@hidden>; "C Y" <address@hidden>;
<address@hidden>
Sent: Wednesday, August 11, 2004 2:31 AM
Subject: [Axiom-math] Re: musings on notation
[snip]
> The notational case is even harder. So I'd like to be able
> to say:
>
> P = Program(foo)
> M:SquareMatrix(2) = matrix([[1,2],[3,4]])
> M^P
>
> but first I need to define categorical properties of the "Program"
> type. So it might be a functor of the form:
>
> Program(C:Code) -> Integer()
>
> that is, a Program type is Categorically defined to accept things
> of type Code and is guaranteed to produce an Integer(). Notice
> what happened here. I'm trying to raise a square matrix to an
> unspecified power and all I can guarantee is that the operation
> WOULD be defined if I were to compute it. I want a name for this
> concept "the operation would be defined if we run it".
>
> Now mathematically this is hard because we haven't defined the
> Category structure for Code. Do we require all Code functions to be
> total (a definite valid value for every input?). Do we require the
> Category of Stateless so that the function always returns the same
> result? If so, we could functionally compose Program types, define
> operators, and be able to compute:
>
> Q = P*P
>
> where the '*' function is
>
> *(Program,Program) -> Program
[snip]
This reminds me of Multi-Stage Programming, where we construct programs that
should be executed later. The relevant papers are available in:
http://www.cs.rice.edu/~taha/MSP/
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.735 / Virus Database: 489 - Release Date: 6/8/2004