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.
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe