> The big benefit I got from using the State Monad was that I
was able to reorder the functions > by just copy/pasting the
function name from one place to another.
I don't understand... why do you need state to do this? Couldn't you
have a function pipeline using dots for composition like
.... (
...
parseAttn .
parsePoBox .
...
) address ...
and have the functions be equally switchable? (well, the first and
last can't quite be copy pasted, but close enough.)
Introducing state seems like a lot of trouble to me if the only one is
easier reorderability of lines.
Agreed, in fact I started with a function
pipeline and then switched to using the State Monad. As the program was
written months ago I don't remember exactly why. Maybe I don't like to
read backwards. ;-)
Funtions running in the state monad can call other
functions with the same `State s a` signature (and so on as deep as you
want). You never have to care about passing parameters and restarting a
new pipeline. But of course you can easily do without the State Monad.
I don't think the State Monad allows to do thing that you can't do with
basic Haskell. It just makes code more readable (in my opinion at
least).
Olivier.