
Ryan Ingram:
Other external state is harder to emulate. For example, communication over a network most definitely requires some concept of a 'computation with side effects' since the network's response could change from request to request.
In GHC, even IO objects are pure, but they conceptually represent functions that modify the state of reality. I believe I begin to become a sectarian, with some idées fixes not so well shared...
It is the third or the fourth time that somebody recently puts the equivalence between the communication with the outer world, and "side effects". I contest that very strongly, perhaps a TRUE guru might instruct me. What a computer and the program it runs do to its hard environment has NOTHING to do with side-effects. Even a completely angelic, pure as a Cherub (but real) program will consume some electricity. And so what?! Of course, in classical physics the state of the world changes constantly (in a quantum world it is extremely ambiguous...), but the question of purity of a program - in my opinion - concerns the program, and nothing else. The networking is not expected to break the referential transparency, or does it? Jerzy Karczmarczuk