If Haskell is a pure functional language then how does anything get done?
Useful programs need to perform input/output or I/O if there are to interact with the outside world. How else would a program read files, print to the screen and interact with the external world. I/O is the process of responding to input signals from the external world and responding with output signals.
Haskell is a purely functional language. Let's define purity.
Purity is the property of functions which when given the same input always return the same output.