develooper Front page | perl.perl5.porters | Postings from December 2019

Re: Named Parameters

From:
Dave Mitchell
Date:
December 16, 2019 12:26
Subject:
Re: Named Parameters
Message ID:
20191216122520.GE3620@iabyn.com
On Mon, Dec 16, 2019 at 11:54:48AM +0000, hv@crypt.org wrote:
> Dave Mitchell <davem@iabyn.com> wrote:
> :On Fri, Nov 29, 2019 at 04:44:24PM +0000, hv@crypt.org wrote:
> :> Dave Mitchell <davem@iabyn.com> wrote:
> :> :Duplicate named arguments are allowed, the last value being used. This
> :> :allows the useful idiom of foo(%defaults, %options) to work.
> :> [...]
> :> :Note that for duplicate arguments, only the right-most value is likely to
> :> :evaluated; for example foo(name => $tied1, name => $tied2) would likely
> :> :only call (tied $tied2)->FETCH(), although we don't guarantee this.
> :> 
> :> Such a guarantee would be useful for the foo(%defaults, %options) idiom.
> :
> :That's not obvious to me, Could you expand upon it?
> 
> %defaults could include values that are expensive to evaluate (eg via tie);
> a guarantee that they would not be evaluated unnecessarily would make that
> a reasonable thing to do. Failing such a guarantee one would probably choose
> instead to write extra code at each calling site to check manually whether
> the default is needed.
> 
> It's only a small benefit, not one worth moving the world for; but if once
> we have an implementation it appears we could offer the guarantee with
> no impact, it might be worth doing so.

I see what you mean. I think it would probably safe to upgrade that to a
guarantee.

-- 
In England there is a special word which means the last sunshine
of the summer. That word is "spring".



nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About