Re: What is the "+/" operator?

Ralf Hemmecke <[email protected]>
Newsgroups gmane.comp.mathematics.axiom.general
Message-ID <[email protected]>

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.

woodpecker:~/scratch>aldor -fx -laldor aaa.as
woodpecker:~/scratch>aaa
Sum:  29
Prod: 0

But if you like the

f/[a,b,c]

syntax, you can actually define a similar things in Aldor. (I guess, 
SPAD would be just the same.)

Ralf

---BEGIN aaa.as
#include "aldor"
#include "aldorio"

macro Z == Integer;

Pkg: with {
	/: ((Z, Z) -> Z, List Z) -> Z;
} == add {
	(f: (Z, Z) -> Z) / (l: List Z): Z == {
		empty? l => 0;
		f(first l, f/(rest l));
	}
}

main(): () == {
	import from Pkg;
	l1: List Z := [2,4,6,8,3,5,1];
	sum: Z  := (+)/l1;
	prod: Z := (*)/l1;
	stdout << "Sum:  " << sum << newline;
	stdout << "Prod: " << prod << newline;
}

main();
---END aaa.as
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.