[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Axiom-mail] sum()
From: |
Martin Rubey |
Subject: |
Re: [Axiom-mail] sum() |
Date: |
Wed, 23 Jun 2004 12:01:57 +0000 |
Martin Rubey writes:
> You tried:
>
> > f: Integer -> Integer;
> > f(0)==1; f(1)==2;
> > f(n)==sum(f(i)*f(n-i), i=0..(n-1))
>
> Try
>
> f: Integer -> Integer;
> f(0)==1; f(1)==2;
> f(n)==reduce(+,[f(i)*f(n-i) for i in 1..(n-1)])
>
> I have no good explanation why sum won't work. (Well, I know why it happens
> internally. I'm looking for a solution...)
Unfortunately, the solution won't be easy. The problem in writing an operator
"sum" that does what you need is the following: It seems that in axiom all the
parameters of a function are evaluated first. Thus, the first thing the
interpreter sees when it tries to do calculate f(2) is
f(i)*f(n-i)
which is not defined, since we said that f is a function on the
integers. However, "i" is no an integer but a symbol here...
So what would be needed is a facility to tell axiom *not* to evaluate the
argument of some function. On the other hand, there might be other solutions
I'm unable to think of right now. We'll see.
Martin