Is there a purpose to hoisting variables?
“Hoisting” is necessary for mutually recursive functions (and everything else that uses variable references in a circular manner): function even(n) { return n == 0 || !odd(n-1); } function odd(n) { return !even(n-1); } Without “hoisting”, the odd function would not be in scope for the even function. Languages that don’t support it require forward … Read more