← Back to context

Comment by kazinator

14 hours ago

Lexical closures easily give rise to cycles, without the program doing any imperative pointer swizzling to make a cycle explicitly.

For instance, a named lexical function can have itself in scope so that it can call itself recursively. This means that, as an object, it has a pointer to an environment, and that environment has an entry which contains that function itself: cycle.

If you deny cycles, that blows up at the starting line.