Re: [Haskell-cafe] Very crazy

Chaddaï Fouché wrote:
2007/9/25, Andrew Coppin
: Forget PrintfType - I can't even understand the haddoc page yet!
(printf performs I/O, yet it is outside the I/O monad. It seems to accept an arbitrary number of arguments, which is obviously impossible. It's *almost* as scary as the original. Although the original will crash your program is you use it wr... oh, so does this one. Cool.)
printf don't always perform IO : if you ask it for a String it will happily turn into sprintf for you, if you use it in the IO Monad, it will indeed perform IO, but there's nothing fundamentally IO bound in printf logic.
That's even *more* impossible... o_O
Well printf crash your program because it can't check if you're arguments correspond to the chain at compile time (quite obviously since the chain itself can be dynamic), but it won't corrupt memory or anything from this kind, so it's arguably much better than the C one.
All I know is that in C, any attempt to use printf() has an 80% probability of causing the machine to dump the entire contents of RAM to stdout until it happens upon a zero byte. Probably the most annoying part was all the 0x07 bytes in there. Do you know what a room full of beeping PCs is like? I do... Sometimes when we got bored, we would "race" our PCs to see which one would stop beeping first. (But they stopped that when I worked out how to make mine "win" every race...)
participants (1)
-
Andrew Coppin