Lazy evaluation of function arguments in D

renoX renozyx at gmail.com
Mon May 21 02:07:55 PDT 2012


On Sunday, 20 May 2012 at 00:26:14 UTC, Mehrdad wrote:
> http://www.reddit.com/r/programming/comments/tui75/lazy_evaluation_of_function_arguments_in_d/c4pwvyp
>
> +1 ^

+1 too:

'f(x++)' what's the value of x after executing this function call?

If f is a function with a normal argument, the new value is x + 
1, if f is a function with a lazy argument, the new value can be 
anything (depends on how many time the expression is evaluated).

So the lazy keyword hurts maintainability: you need an IDE which 
color differently the callsite to be usable, really ugly..

How about improving 'f({ return x ++ })' to either f({^x++})' (^ 
is return in Smalltalk) or 'f({x++})'?



More information about the Digitalmars-d mailing list