default args (was Re: Any reason for assigning block parameter in
inject:into:)
J J
azreal1977 at hotmail.com
Sun Apr 29 14:33:21 UTC 2007
>From: nicolas cellier <ncellier at ifrance.com>
>Reply-To: The general-purpose Squeak developers
>list<squeak-dev at lists.squeakfoundation.org>
>To: squeak-dev at lists.squeakfoundation.org
>Subject: Re: Any reason for assigning block parameter in inject:into:
>Date: Sun, 29 Apr 2007 15:00:02 +0200
>
>However, this pattern should be limited to very few optional args, because
>N optional args make (2 raisedTo: N) different messages.
>That's a lot of code to maintain.
>
>Nicolas
You're over-stating this. It's simple. You provide the base method that
takes all options and one method for each different interface to that method
you provide. And this approach certainly scales better then setting the
defaults by hand, although Python style defaulting would be less typing.
Languages like Smalltalk can use keyword arguments for default arguments
[1], languages like Python use special default argument syntax [2] and
languages that were not designed as well (at least in this area) have to
rely on 'var = var || default' nonsense.
[1] IMO, this is the superior method for a dynamic language because the
others require runtime checks to be done every time the function is entered,
while this way it is only a compile time check.
[2] This is certainly better then having to manually type out every default
case, but (afaik) it is still a runtime check for a dynamic language.
_________________________________________________________________
The average US Credit Score is 675. The cost to see yours: $0 by Experian.
http://www.freecreditreport.com/pm/default.aspx?sc=660600&bcd=EMAILFOOTERAVERAGE
More information about the Squeak-dev
mailing list
|