Lazy functions, lazy arrays

John Colvin via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri Mar 20 03:38:15 PDT 2015


On Friday, 20 March 2015 at 10:02:27 UTC, Dennis Ritchie wrote:
> For example,
>
> lazy int sum(int a = 3, int b = 5) {
> 	return a + b;
> }
>
> That is, if the function is not invoked, it should not be 
> calculated at compile time.

I don't understand what you mean. You mean a function that isn't 
compiled if it isn't used anywhere? Template functions that are 
only compiled if instantiated, so you could write

int sum()(int a, int b) { return a+b; }
            /\
empty braces for a 0-arg template. Can be called just like a 
normal function, the only time it would be necessary to 
explicitly write sum!() would be if you wanted to take it's 
address: &sum!()


More information about the Digitalmars-d-learn mailing list