3 ms·
What's wrong with R5RS?
by cypherpunks 15y ago
What's wrong with R5RS?
- kbob 15y agoNothing'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 15y 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 15y 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 15y agoOnce you add exceptions, that goes away. Not really. Exceptions are easy to build on top of continuations, which are already part of R5RS.
- wbhart 15y agoIt's not as good as R7RS.
- pdelgallego 15y agoThe lack of a proper module system was the major drawback for me. I also miss the immutable lists by default that racket provides.