3 ms·
I thought that the whole point of Scheme is for it to be easy to implement. R7RS seems more aligned with Scheme's vision.
by haolez 7y ago
I thought that the whole point of Scheme is for it to be easy to implement. R7RS seems more aligned with Scheme's vision.
- bitwize 7y agoEase of implementation leads to a maze of twisty little implementations, all different. It also leads to unaccounted-for corner cases (see: why C is deprecated). The major implementations, Guile and Racket, both embraced R6RS.
- buzzkillington 7y agoGuile has not embraced R6RS: > R6RS significantly expands the core Scheme language, and standardisesmany non-core functions that implementations—including Guile—have previously done indifferent ways. Guile has been updated to incorporate some of the features of R6RS, and toadjust some existing features to conform to the R6RS specification, but it is by no meansa complete R6RS implementation. SeeSection 7.6 https://www.gnu.org/software/guile/manual/guile.pdf https://www.gnu.org/software/guile/manual/guile.pdf Neither has Racket, they aren't even calling themselves a scheme any more.
- pmoriarty 7y agoNeither does Chicken Scheme https://www.reddit.com/r/programming/comments/1s9rg/lead_developer_of_chicken_scheme_speaks_out/ https://www.reddit.com/r/programming/comments/1s9rg/lead_dev...
- akkartik 7y agoAre there any complete implementations of R6RS?
- widdershins 7y agoI think Chez is pretty much compliant.
- abjKT26nO8 7y agoChez Scheme.
- bitwize 7y agoRacket also has a #!lang r6rs.
- bjoli 7y agoThe upcoming 3.0 release has an r6rs mode that makes r6rs easier to use. The r6rs incompatibilities are, apart from (rnrs io ports) and the condition system rather small. The incompatibilities can be found here: https://www.gnu.org/software/guile/docs/master/guile.html/R6RS-Incompatibilities.html#R6RS-Incompatibilities https://www.gnu.org/software/guile/docs/master/guile.html/R6...
- Avshalom 7y agoI mean originally it was just an exploratory language, something small enough that Steele and crew could keep it all in their head but with lisp flexibility so they didn't have to re-write it everytime they thought up something new. As far as I know it was never meant to be like a tool to teach compiler/interpreter writing or anything. That said a big part of R6 which is mentioned in article is that code was not very portable between R5s (N.B. it wasn't much more portable between R6s) and in some sense if your implementation can't run anyone else's code, what have you actually implemented? Something that looks like scheme is easy implement to be sure but I think R6 was trying to make it so that 'scheme' was a language and not an aesthetic.