
jules:
Felipe Lessa wrote:
On Dec 4, 2007 1:28 AM, Don Stewart
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.
Yes, this is considered bad practice in larger project (not so much in little hacks), since read . show should hold, as should the 'paste' property. -- Don