
On Thu, 2005-07-21 at 09:24 +0200, Tomasz Zielonka wrote:
On Thu, Jul 21, 2005 at 04:55:15PM +1000, Bernard Pope wrote:
On Wed, 2005-07-20 at 17:06 +0100, Andy Gimblett wrote:
show (Prefix l p) = "(" ++ l ++ "->" ++ show p ++ ")" show (External p q) = "(" ++ show p ++ " [] " ++ show q ++ ")"
but to me the extensive use of ++ is not particularly readable.
It is also inefficient because append has complexity proportional to the length of its left argument. That's why the Prelude defines:
type ShowS = String -> String
and functions like showsPrec, shows, showChar
It's not that bad in this case, because ++ is right-associative.
You are right, in this case it is not too bad. I meant that there are potential efficiency problems with this style of generating strings, which ShowS and the pretty printers address. Cheers, Bernie.