Why Ruby?

Jacob Carlborg doob at me.com
Sun Dec 19 08:11:03 PST 2010


On 2010-12-19 16:23, Andrei Alexandrescu wrote:
> On 12/19/10 6:26 AM, retard wrote:
>> Sat, 18 Dec 2010 16:01:37 -0800, Walter Bright wrote:
>>
>>> Simen kjaeraas wrote:
>>>> The problem of D's lambda syntax is it is optimized for longer
>>>> functions. Usually, the delegates I write are one line long. I cannot
>>>> see that this syntax collides with anything at the moment, but feel
>>>> free to enlighten me:
>>>>
>>>> { => 4; }
>>>> { a => 2*a; }
>>>> { a, b => a>b; }
>>>> { => @ + @; } // turns into { a, b => a + b; }
>>>>
>>>>
>>> If size and simplicity of typing are critical, are those really better
>>> than:
>>>
>>> "a>b"
>>
>> In case you didn't see, two additional problems were also listed earlier
>> in this thread:
>>
>> - template bloat (different strings generate new instances of the sort
>> in the sorting example)
>
> This can be solved by using a canonicalizer before passing to unaryFun.
> I considered doing that, but delayed implementing it to when this would
> actually become a problem.

I can clearly see that you haven't used an Objective-C/D bridge. The 
reason (or at least one of the reasons) for which Michel Fortin (as well 
as I) gave up the Objective-C/D bridge and started to modify DMD is 
template bloat. I'm not saying that using template strings as lambdas is 
going to bloat your executable/library as much as the bridge does but I 
always think twice before adding a template to my code.

>> - symbol visibility problems because of wrong scoping
>
> Scoping is not wrong, it's just different :o). I agree that that can be
> an issue - in which case you take the enormous hit of writing (a, b) {
> stmts }, of which the proposals passionately discussed within save a
> grand total of around four characters.

I don't know why but you added the {} characters.

> Again: to what extent does this help on becoming able to do what you
> want to do in D, and where is implementing this ranked in comparison to
> the other work items?
>
>
> Andrei
-- 
/Jacob Carlborg


More information about the Digitalmars-d mailing list