[Haskell-cafe] Haskell & monads for newbies
Andrew Coppin
andrewcoppin at btinternet.com
Sun Jul 15 12:08:16 EDT 2007
Steve Schafer wrote:
>> "basically everything I write programs for is mainly about I/O..."
>>
>
> It's funny how people always seem to think that, but if you look at what
> they're really doing, I/O is usually the least of their worries.
> Programming GUIs is about the only reasonably common I/O-related task
> that has any sort of complexity. Most everything else is reading or
> writing streams of bytes; the hard part is what happens between the
> reading and the writing.
>
Indeed, I replied "if all you want to do is run some algorithm over some
data, you can write a thin layer to do the I/O, and then write the rest
in pure code". And everybody was like "er, I don't understand what
distinction you think you're making..."
Obviously, what I meant is that one can write
main = do
stuff <- readFile "source.txt"
writeFile "source.exe" $ compile stuff
compile = ...
I guess because in most normal programming languages you can do I/O
anywhere you damn like, it doesn't occur to most programmers that it's
possible to make a seperation. (Most seem to realise that, e.g., mixing
business logic with GUI code is a Bad Thing though...)
I saw a quote somewhere round here that went like this:
"Haskell isn't really suited to heavily I/O-oriented programs."
"What, you mean like darcs?"
"...oh yeah."
;-)
More information about the Haskell-Cafe
mailing list