By Alvin Alexander. Last updated: May 30, 2017
Here’s a link to a page by James Earl Douglas that I don’t quite understand yet, but also don’t want to forget. Here’s his intro to the problem, and then the image shows his solution.
Problem: You have a mutable variable (a var in Scala) that is both read from and written to outside of a tightly-scoped block.
Solution: Remodel the block as functions that take an initial value of the variable, and return both the final value of the variable and the original return value of the expression.