5 ms·
Nothing's wrong with it; it just doesn't go far enough. It doesn't define a standard module system or macros (beyond syntax-rules), exceptions, or record types
by kbob 16y ago
Nothing's wrong with it; it just doesn't go far enough.
It doesn't define a standard module system or macros (beyond syntax-rules), exceptions, or record types. Most R5RS implementations offer those, but they're all different and incompatible. The standard also doesn't help with boring but necessary stuff like file encodings, character sets, etc.
So instead of writing a (nontrivial) program for R5RS Scheme, you have to write it for MIT Scheme or Racket or Chicken or Chibi or ...
- cypherpunks 16y agoWhat's right, though, is you can implement an interpreter in a weekend. That makes it usable in a lot of places. Once you add exceptions, that goes away. File encodings and character sets are nice, but short-sited. R5RS was eternal. No one predicted the move to Unicode 35 years ago when Scheme was created, and that lack of definition let it make the transition fine. I'm all for recommendations on things like those, so if you chose to implement them, there's a standard way, but I'm not in favor of making those part of the standard.
- chc 16y agoImplementing an interpreter for a language in a weekend is a less common need than writing a program for the language. If you want to write an interpreter that does no more than R5RS in a weekend, R5RS is perfect for you. But surely you can see the need for a standard beyond that.
- anon_d 16y agoOnce you add exceptions, that goes away. Not really. Exceptions are easy to build on top of continuations, which are already part of R5RS.