Wed, 02 Sep 2009 13:35:05 +0200, Michiel Helvensteijn thusly wrote: > language_fan wrote: > >>> I agree it would be better to allow forward references for nested >>> functions, I just wished to point out that the current behavior is not >>> a bug, it was built that way. >> >> That's great news actually. It might even mean that this might change >> some day. > > I still find it silly that it was built that way. Seems to me you should > be able to forward-reference *any* symbol that has a value that can't > change over its lifetime. Functions, const/immutable vars, typedefs, > classes, etc.
While the syntax might vary a bit in functional languages, it's a common practice for the compiler to solve symbol dependencies inside the function scope. myfun:: Int -> Int -> Int myfyn a b = result b where result c = helper3 c + a helper3 = helper2 5 helper2 d c = if c == 1 then d else helper2 d (c - 1) When I first tried D, I put all my helper functions on top of all procedural code inside the function's scope, but soon noticed how badly it can fail.
