I was watching this Channel 9 talk and a very interesting statement is made in the around the 60 minutes in.
He said that even with completely pure functions once you introduce threads you can simulate side effects.
The way he outlined this was using C-omega notation, which I'm not familiar with, and this already has the relevant language support to do this.
The problem I have is how do you implement the get and set message handlers without assignments? Surely the handlers would have to change a value so that the thread's internal loop can record a new value?
What am I missing? How would I implement that in LISP, for example, that has no special constructs?