I tried to use _typeof() to get the type of a function, but I
found if a lambda function modified a var in the environ, the type "function"
would be returned instead of "function(<arg type list>:<result
type>)". for example:
# cat lambda.pike
void t(function
f)
{
write("%O\n",_typeof(f));
}
void
main()
{
int
k;
t(lambda(int
ig){});
t(lambda(int
ig){k++;});
}
# pike lambda.pike
function(int : zero)
function
With second lambda function ,_typeof() just return
"function", but for the first lambda it returned "function(int : zero)". The
prototype of the two lambda function is SAME, then my question is "how can I get
the prototype at runtime?"