On Sun, 06 Jan 2019 20:19:59 +0000, Rubn wrote: > You can declare functions inside of functions in D. You weren't forward > declare grow() in the module namespace, so much as you were forward > declaring a new function grow.
Unfortunately, you can't do forward declarations for nested functions. If you could, that would be handy for mutual recursion: void main() { int a(int i); int b(int i) { if (i > 0) return a(i - 1); return abs(i); } int a(int i) { if (i % 2 == 0) return b(i - 2); return b(i - 1); } writeln(a(12)); } Unfortunately, Error: declaration a is already defined And omitting the forward declaration gets you: Error: undefined identifier a