View mode: basic / threaded / horizontal-split · Log in · Help
January 25, 2013
UFCS-style invocation of lambdas
Would this be possible without breaking the grammar?

bool isPalindrome = getRange().(r => equal(r, retro(r)));


I find this way of writing that expression more natural and 
efficient than the alternatives:

auto r = getRange();
bool isPalindrome = equal(r, retro(r));

or

bool isPalindrome = (r => equal(r, retro(r)))(getRange());
January 25, 2013
Re: UFCS-style invocation of lambdas
On 01/25/2013 10:37 PM, Peter Alexander wrote:
> Would this be possible without breaking the grammar?
>
> bool isPalindrome = getRange().(r => equal(r, retro(r)));
>

Yes.

>
> I find this way of writing that expression more natural and efficient
> than the alternatives:
>
> auto r = getRange();
> bool isPalindrome = equal(r, retro(r));
>
> or
>
> bool isPalindrome = (r => equal(r, retro(r)))(getRange());

bool isPalindrome = getRange().ap!(r => equal(r, retro(r)));

where

auto ap(alias a,T...)(T b)=>a(b);
Top | Discussion index | About this forum | D home