>> But the RS committee, which bothered to add to Scheme all sorts of unnecessary
>> nonsense never bothered to add a decent API for IO.
>Any idiot can go and design C-like or C++-like API for IO. Of course,
>that's so horrible, everyone uses layers of abstraction over it, and
>generally have a hard time. If you need to do IO in scheme, and you allow
>it to be as horrible as C/C++, just write a small library, and know that
>you'll port it -- a week of porting a small library isn't so bad.
This is interesting: We started this discussion with me commenting that Scheme
didn't have serious file IO. You sent me off to look at some standard that's
non-standardised and doesn't have file IO. Now you tell me that any idiot can write a
C/C++ like API for IO... :)
1- ... but I suppose it takes some really briliant person to get real work done without
any IO... Great.
2- I don't want to have to hack foreign functions, which aren't standardised. Any idiot
can write non-standardised code. This isn't a solid basis for writing useful software
3- An inferior API for IO would be far better than no API. Eventually, a useful layer of
abstraction would emerge and people would then make it standard and possibly
deprecate the older version. But in the total absense of any useful file IO in Scheme,
you're going to have even fewer people thinking about what a useful API should look
>all, C++ programs take much longer to port. Eventually, Scheme will grow
>IO, but it will be after a lot of thought -- and hopefully something as
>wonderful as Haskell monads will emerge.
Back in 1994, a friend of mine implemented file IO procedures with monads. It even
had a wonderfully clever treatment of call/cc in input files. But he did it via Chez
Scheme's foreign function interface, and so after he graduated it died off. Six years
later, there is still no useful IO for Scheme.