3 ms·
You can do that, but it's more elegant if you define a functional stateful transducer analogous to scanl for lists.
by jules 12y ago
You can do that, but it's more elegant if you define a functional stateful transducer analogous to scanl for lists.
- deleted 12y ago[deleted]
- davdar 12y agoThat's like saying "your program is more elegant if it has no monads". It's an incorrect statement. The monadic version is perfectly elegant. Even better: it's the right one.
- jules 12y agoBy the same logic scanl should just have the type: (b -> IO a) -> [b] -> IO [a] instead of (a -> b -> a) -> a -> [b] -> [a] Just putting the whole thing in the IO/ST monad isn't the right solution when you need a very specific form of local state.