On Wed, Apr 2, 2008 at 11:40 AM, Bill Page wrote: > ... > > > Consider the canonical example of a function that takes and a > > > non-negative Integer 'n' and returns the zero "vector" of type > > > 'DirectProduct(n,Integer)' > > > > > > zeroVector(n:NonNegativeInteger):DirectProduct(n,Integer) > > > > > > As far as I know it is impossible to write such a function in any > > > version of Axiom as it stands today but this is possible in Aldor. > > > On Wed, Apr 2, 2008 at 4:38 AM, Ralf Hemmecke wrote: > > > I think, no matter whether or not this is possible in Aldor, it looks > > like a bad construction. > > > > Suppose you implement the DirectProduct constructor with only > > vectors of length n in mind. You would probably want your zero > > vector to have signature > > > > 0: % > > > > and not > > > > zeroVector: NNI -> % > > > > No 'zeroVector' is not a vector. [0,0,0] is a member of 'zeroVector(3)'. >
Oops, sorry. Re-reading I see that what I wrote above is nonsense. What I should have said is that in this example 'zeroVector' is not an operation exported by DirectProduct. Of course DirectProduct in Axiom does define 0 that way and one can certainly write: 0$DirectProduct(3,Integer) I don't agree that my 'zeroVector' is a "bad construction" although I have to admit that it is somewhat artificial. The point of the example is a function whose result type depends on the value of it's arguments. The situation can be much more complicated than this. Regards, Bill Page. ------------------------------------------------------------------------- Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace _______________________________________________ open-axiom-devel mailing list open-axiom-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/open-axiom-devel