Closures are a complicated mess. Functional programming languages hide the mess with garbage collection.