Josef Eschgfaeller on Mon, 08 Feb 2016 20:08:32 +0100


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: addhelp


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. Hence for

f (a=10,...)

it is 10. Since I use it for functions
which all have a single argument
which is a vector, whose length L
I know when I write the function,
but not when I apply some other
functions, it suffices to indicate L
as the optional value of the
argument. Artificial example:
--------------------------------------------------
implicitarity (f) = component(f,2)[2]

elaborate (f) = {my (n,e);
n=implicitarity(f); e=f([2,5,1]); n*e}

f (v=3) = {my ([x,y,z]=v); x+y+z}

t=elaborate(f)
print(t) \\ 24
--------------------------------------------------
Josef Eschgfaeller