Question: problem with keyword parameters and recursivity

test := proc(x::integer, {y::posint:=1}, {z::posint:=1}, $)
  printf("%a\n", 'procname'(args));
  if x > 100 then
    procname(x-y-z-1, 'y'=10);     # not working (nor ''y'', uneval(y), evaln(y) etc.)  
  elif x < 100 then 
    procname(x-1, args[2..nargs]); # working  
  else
    NULL;
  fi;
end:
test(1000);
Error, (in test) invalid input: too many and/or wrong type of arguments passed to test; first unused argument is 1 = 1

The problem is that in 'y'=10 the y is evaluated, and I can find no syntax to do that.
Obviously I can bypass that by adding a test2 recursive procedure without keyword parameters and called by test, but 1) not a nice solution and 2) I like to understand

So the question : How do I ... use keyword parameters in recursive procedures ?

Thank you
 

Please Wait...