I’m reading about the math foundation behind Haskell – I’ve learned about how closures can be used to save state in a function.
I was wondering if Haskell allows closures, and how they work because they are not pure functions?
If a function modifies it’s closed-over state it will be capable of giving different outputs on identical inputs.
How is this not a problem in Haskell? Is it because you can’t reassign a variable after you initially assign it a value?
The closure just ‘adds’ additional variables to function, so there is nothing more you can do with them than you can with ‘normal’ ones, that is, certainly not modify the state.
Read more:
Closures (in Haskell)