Haskell functions are pure, like mathematical functions: the same input to a function produces the same output every time, regardless of the state of the application. That means the function cannot read or write any data that is not passed directly to it as an argument. So the program is "stateless" in that the behavior does not depend on anything other than its inputs.
This is valuable because you as the developer have a lot less stuff to think about when you're trying to reason about your program's behavior.
>>> The stateless nature of Haskell is something that many rediscover at different points in their careers. Eg in webdev, it's mostly about offloading state to the database
>> Would you mind explaining what you mean by stateless?
> the same input to a function produces the same output every time
It's good that the question about 'stateless' was raised, but because these are two different things. Working with pure functions does indeed have the above benefits, but a dumb web node deferring its behaviour to a stateful database is not stateless in that sense, and so does not have the above benefits.
In a stateless service in the OO sense, it is perfectly fine to GET something, and then GET something different the next time you run the same request. (Probably because someone POSTed between your two GETs.) Because of mutable state.
FP statelessness means no mutable state, so two identical GETs will of course return the same result.
This is valuable because you as the developer have a lot less stuff to think about when you're trying to reason about your program's behavior.