
On 3/12/06, Einar Karttunen
On 12.03 01:47, Shannon -jj Behrens wrote:
monad. Perhaps controversially, I've continued to use |> in a bunch of places that the monad didn't get rid of because I think it's more readable, but I'm still open for argument on this topic. Using the
What about using (>>>) from Control.Arrow?
-- For convenience: currTokType :: ParseContext -> TokenType currTokType ctx = ctx |> currTok |> tokenType
currTokType = currTok >>> tokenType
currTokValue :: ParseContext -> String currTokValue ctx = ctx |> currTok |> tokenValue
currTokValue = currTok >>> tokenValue
-- Create the final output string given a ParseContext. consolidateOutput :: ParseContext -> String consolidateOutput ctx = ctx |> output |> reverse |> concat
consolidateOutput = output >>> reverse >>> concat
and so on.
I'm sorry, I looked at Arrow.hs, and I just don't understand. The State monad is working just fine. I'm only using |> as a replacement for $ because I find it more readable to read left to right than right to left. Arrows looks like a replacement for monads. Are you saying I should drop my use of the State monad? If so, why? I like the readability of the do syntax. Are you saying that >>> can be used as a reversed version of $? Thanks for your patiences with my ignorance ;) Thanks, -jj