On Tue, May 17, 2005 at 01:01:48PM -0500, Rod Adams wrote:
: Aaron Sherman wrote:
: 
: >Ok, so log and log10:
: >
: >        multi sub Math::Basic::log (: Num ?$x = $CALLER::_, Num +$base);
: >        &log10<> := &log<>.assuming:base(10);
: >
: >What does log get in this case:
: >
: >     for @x {
: >             log10();
: >     }
: >
: >Does the curried log10 execute the defaulting for the sub it's based on
: >(and thus need run-time access to the default value, which I assume is
: >not in the signature) or does it leave defaulting up to log, in which
: >case, how does log find the right $_?
: >
: 
: I had assumed that wrapper a curries function generates does not alter 
: who the CALLER is. Therefore, when log10() is called, the CALLER for 
: log() is the same as the CALLER for log10.
: 
: IMO, if this is not the case, it severely limits the utility of curried 
: functions. Comments from @Larry requested.

Makes sense to me.  I don't think .assuming should assume anything that
is not explicitly specified as assumed, so defaults should not resolve
till the "real" call.

Larry

Reply via email to