On 9/22/11 3:54 PM, Andrei Alexandrescu wrote:
On 9/21/11 5:17 PM, Walter Bright wrote:
I've collected a few from various languages for comparison:
[snip]

I think we should do the following:
[snip]

I can't believe I forgot an all-important aspect.

A function literal should be comparable to another for equality. Two function literals are equal if they have the same token type sequence (up to alpha renaming) and use the same environment.

Example:

bool test(auto fun)()
{
    return fun == (x, y => x + y);
}

unittest
{
    assert(test!(a, b => a + b)());
}

This will not be easy to implement (especially when environment dependencies come into play) but is necessary.


Andrei

Reply via email to