lazy variables
Paul Backus
snarwin at gmail.com
Wed Oct 17 23:34:55 UTC 2018
On Wednesday, 17 October 2018 at 07:32:37 UTC, aliak wrote:
> lazy S x = () {
> // do some heavy stuff
> }();
>
> if (condition) {
> func(x.y); // heavy stuff evaluated here
> }
auto x = () {
// do some heavy stuff
};
if (condition) {
func(x().y); // heavy stuff evaluated here
}
If you want to make it a little prettier, you could define a
couple helper functions:
T delegate() delay(lazy T expr)
{
return () => expr;
}
T force(T delegate() thunk)
{
return thunk();
}
More information about the Digitalmars-d-learn
mailing list