| Bill Allombert on Mon, 08 Feb 2016 20:31:12 +0100 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Re: addhelp |
On Mon, Feb 08, 2016 at 08:08:24PM +0100, Josef Eschgfaeller wrote:
> Bill Allombert wrote:
>
> > One dirty way to do it in GP is:
> > arity(f)=component(f,2)[1]
>
> Many thanks - it seems that one
> can obtain in this way also the
> implicit arity (see example):
>
> If I understand well,
> component(f,2)[2] is always the
> value of the first argument, if this
> is optional.
No, only if the first argument is a small positive integer.
? f(x,a=-11)=x+a
%17 = (x,a=-11)->x+a
? component(f,2)[2]
%18 = 1
I would suggest something simpler:
f(v=0) =
{
if (v===0,return(3));
my ([x,y,z]=v); x+y+z
}
elaborate (f) = {my (n,e); n=f(); e=f([2,5,1]); n*e}
t=elaborate(f)
print(t) \\ 24
Cheers,
Bill.