Why Ruby?

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Sun Dec 12 10:50:35 PST 2010


On 12/12/10 12:36 PM, Nick Sabalausky wrote:
> "Adam D. Ruppe"<destructionator at gmail.com>  wrote in message
> news:ie2sv2$2thb$1 at digitalmars.com...
>> We already have a D block syntax!
>>
>> =====
>>
>> void myfun(void delegate() lol) {
>>         lol();
>> }
>>
>> void main() {
>>         myfun = {
>>                 assert(0, "lol");
>>         };
>> }
>>
>> ======
>>
>> Totally compiles. :-P
>>
>> It works with delegate arguments too!
>>
>> ========
>>
>> void myfun(void delegate(string) lol) {
>>         lol("say it ");
>> }
>>
>> void main() {
>>         myfun = (string what) {
>>                 assert(0, what ~ " lol");
>>         };
>> }
>> ==========
>>
>> Whoa.
>>
>>
>>
>> (note that while I'm only a little serious here - that actually
>> looks fine to me - I don't think the language needs a change
>> here. }); doesn't bother me one bit.)
>
> I'm sure that's going to disappear when D's properties get implemented as
> intended.

Handling control flow inside the delegate (break, continue, return) adds 
certain complications. Nothing impossible, but they do erode the 
simplicity of the rewrite.

Andrei


More information about the Digitalmars-d mailing list