Re: What is the "+/" operator?

Ralf Hemmecke <[email protected]>
Newsgroups gmane.comp.mathematics.axiom.general
Message-ID <[email protected]>
On 05/24/2007 01:23 AM, Gabriel Dos Reis wrote:
> Ralf Hemmecke <[email protected]> writes:
> 
> | On 05/23/2007 06:50 PM, Bill Page wrote:
> | > Quoting Martin Rubey <[email protected]>:
> | >
> | >> ... Igor Khavkine writes:
> | >>
> | >>> Can someone explain this syntax? Looking at the Axiom .spad files,
> | >>> I see that it has general usage +/[...some list construction...].
> | >>
> | >> It is old syntax for reduce and should go away.
> | 
> | I very much agree. The reason is that one should give an initial value
> | otherwise you might be surprised.
> 
> I don't see why there should be a surprise.
> 
> Reduction through "/" is a functional on monoid operations, so one
> should expect to give a unit element.

Sure. So whoever (which means a program) deals with "/" should first 
check whether the second argument is a List over a monoid and that the 
first argument is exactly *the* corresponding binary operation of that 
particular monoid.

If I look at it that way, then "/" should be a unary operation since 
what one currently writes as its first argument in

   (+)/[1,2,3]

is redundant information. The monoid is specified by the argument of 
List. (The problem arises if a set has two (or more) monoid structures 
implemented, like Integer.)

Or are you saying that you have a domain (like Integer) and the first 
argument then selects the monoid structure? What if I give a binary 
function as the first argument which doesn't make the underlying set 
into a monoid? That error cannot even be caught at runtime.

I am talking here about the compiler. If you have different plans with 
the interpreter, I don't care at the moment, but for the compiler I see 
no point why this form of "/" should be build into the (SPAD) language.

> reduce on the other hand would want an initial value, or a value to
> return when the list of operand is empty.

At least we agree on this.

Ralf
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.