Felipe Lessa wrote:
On Dec 4, 2007 1:28 AM, Don Stewart <[EMAIL PROTECTED]> wrote:
    -- How to display results
    instance Show Action where
        show MoveOutOfBounds    = "Sorry you can't move in that direction."
        show (MoveBadTerrain a) = case a of
                                  Wall      -> "You walk into a wall."
                                  Tree      -> "There is a tree in the way."
                                  otherwise -> "You can't move there."
        show MoveOk             = "Good move."

I always thought show was meant for returning a String that could be
used to recreate the original data if you copy-pasted it in your code
or if you used read (i.e. read . show == id). Reading the
documentation more carefully, I see that [1] says that this property
holds for *derived* instances, and says nothing about it in the
general case.

I would not write what dons wrote.

I would have a custom function here rather than "misusing" Show in this way; call it "showMoveError" or similar. For mostly the reasons Felipe gave.

I don't think it's hugely important though.

Jules

_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to