Lazy functions, lazy arrays
Dennis Ritchie via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Fri Mar 20 06:35:07 PDT 2015
> Use case?
No. I need to be able to make an array "factorials" is not
evaluated, if I don't.
import std.stdio;
enum N = 15;
static int[] factorials = memoizeFactorials(N); // lazy array? :)
int[] memoizeFactorials(int n)
{
if (!__ctfe) {
// Make sure that this function is never called at run
time
assert(false);
}
int[] result = new int[n];
result[0] = 1;
foreach (i; 1 .. n) {
result[i] = result[i - 1] * i;
}
return result;
}
void main()
{
writeln(factorials[10]);
}
More information about the Digitalmars-d-learn
mailing list