axiom-math
[Top][All Lists]
Advanced

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

[Axiom-math] Re: [fricas-devel] Re: [open-axiom-devel] [fricas-devel] Re


From: Bill Page
Subject: [Axiom-math] Re: [fricas-devel] Re: [open-axiom-devel] [fricas-devel] Re: [fricas-devel] Re: [fricas-devel] Re: iterators and cartesian product.
Date: Wed, 24 Oct 2007 11:33:06 -0400

On 10/24/07, Gabriel Dos Reis wrote:
>
> On Wed, 24 Oct 2007, Bill Page wrote:
> ...
> | A good notation should help "suggest" a solution
>
> Gaby wrote:
> A good notation should reflect semantics.
>

Yes. I think that is a better way of saying what I was trying to say. Thanks.

> I'm skeptical in the efficacy of putting the cart before the horse.
>

Ok, but I tend to thing of this as more of a systemic thing without
one necessarily leading the other.

> [...]
>
> | Earlier in this thread I suggested introducing a new domain I called
> | 'IntegerSegment(S)' abbreviated INTS that would be the domain
> | equivalent to a given 'S:Segment(Integer)'. Then we could write:
> |
> |   [i for i in Product(OVAR [a,b,c], INTS 1..3)]
> |
> | This does not require that '1..3' denote a domain although it does
> | seem less "economical".
>
> It is certainly be a good thing to have an implementation of that
> domain and see how much we can learn from it.
>

One thing to note is that the above construction still requires an
extension of Spad and the Axiom Interpreter syntax and semantics to
allow a domain to follow 'in'. Right now one would actually be forced
to write:

   [i for i in expand()$Product(OVAR [a,b,c], INTS 1..3)]

I posted a patch for the Product domain to provide such an 'expand'
operation (maybe a better name is desirable) and also to provide
'expand' for any domain in the Finite category. But converting a
domain (Product) to a List just to iterate over it seems like a waste
and is still less economical. I would like the compiler to make this
operation transparent and more efficient.

Regards,
Bill Page.




reply via email to

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