Why Ruby?

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Sun Dec 19 07:18:19 PST 2010


On 12/19/10 5:08 AM, foobar wrote:
> Walter Bright Wrote:
>
>> JRM wrote:
>>> you could write:
>>> sort!(@1>@2)(x);
>> [...]
>>> I think this idea (or something similar) is worth consideration.  It is
>>> simply a small extension to an already existing feature that would give D
>>> a terser syntax for lambda's than most of the other languages we've been
>>> discussing.
>>
>> but:
>>
>>      sort!("a>b")(x);
>>
>> is just as short! And it already works.
>
> I think that the issue here is not about syntax as much as it is about semantics:
> As others said, this is equivalent to dynamic language's eval() or to D's string mixin and the this raises the question of hygiene which sadly has no good solution in D.
>
> The main concern is this:
> In what context are the symbols 'a' and 'b' evaluated?
>
> At the moment they cannot be correctly evaluated at the caller context and do not allow:
> sort!("a.foo()>  b.bar()")(whatever);

That does work. What doesn't work is calling nonmember functions looked 
up in the context of the caller.

Andrei


More information about the Digitalmars-d mailing list