On Sunday, 20 May 2012 at 14:02:52 UTC, deadalnix wrote:
Le 20/05/2012 01:03, Walter Bright a écrit :
http://www.reddit.com/r/programming/comments/tui75/lazy_evaluation_of_function_arguments_in_d/


This feature break pure/@safe/nothrow .

I don't think this is a good idea to promote it right now, as it WILL have to change.

What I would like is to have community agree on the topic, not necessarily change anything. Agreement would mean that the issues are either fixed, or some workaround proposed, or it is stated that this is impossible to have due to some other design decision, or not important for some reason.

For me the most important would be to understand how to implement functionality "evaluate expression at most once and store result for subsequent calls", even if this would be restricted to pure nothrow. And if we claim that immutabilily is the advantage of D, IMO, we need to be able to have lazy evaluation possible for immutable data structures. (AFAIK, Haskell has immutability and lazy evaluation by default.) But I don't know how to avoid synchronization for both evaluating and storing the result.

Reply via email to