Any reason for assigning block parameter in inject:into:

J J azreal1977 at hotmail.com
Sun Apr 29 10:24:34 UTC 2007


I think JavaScript et al. need that because they don't have method 
overloading or keyword arguments like Smalltalk does.  The patten mentioned 
below simply isn't needed.  Instead of doing the below you just do:

start: function element: el speed: sp duration: dur after: af
  "..."

start: function element: el
  ^ self start: function element: el speed: 0.4 duration: 0.4 after: 
(function)

"etc."

To me this is much more elegant and clean then the ugly, perl-esque: "var = 
var || default"  stuff.

>From: "Lukas Renggli" <renggli at gmail.com>
>Reply-To: The general-purpose Squeak developers 
>list<squeak-dev at lists.squeakfoundation.org>
>To: "The general-purpose Squeak developers 
>list"<squeak-dev at lists.squeakfoundation.org>
>Subject: Re: Any reason for assigning block parameter in inject:into:
>Date: Sun, 29 Apr 2007 11:36:16 +0200
>
>>There's absolutely no way that assigning to a block arg should be
>>permitted. Blocks arg should be treated the same as method parameters
>>by the compiler.
>
>A question: Why shouldn't it be allowed to assign to method and block
>arguments, if the underlying implementation allows to do so?
>
>I wonder, because in other languages like JavaScript it is a very
>common pattern to assign to function arguments, for example to set
>default values if necessary. Personally I find this more clear and
>less error prone than to introduce new temporary variables for the
>arguments:
>
>	start: function (element, speed, duration, after) {
>		element = $(element);
>		speed = speed || 0.4;
>		duration = duration || 4.0;
>		after = after || function () { return true; };
>		...
>
>Cheers,
>Lukas
>
>--
>Lukas Renggli
>http://www.lukas-renggli.ch
>

_________________________________________________________________
Mortgage rates near historic lows. Refinance $200,000 loan for as low as 
$771/month* 
https://www2.nextag.com/goto.jsp?product=100000035&url=%2fst.jsp&tm=y&search=mortgage_text_links_88_h27f8&disc=y&vers=689&s=4056&p=5117




More information about the Squeak-dev mailing list