5 ms·
Guile is my second favorite scheme (after chicken). It's semi-R6RS, but still feels nice, and still feels scheme-y. It's nicely practical, and it's one of the r
by qwertyuiop924 10y ago
Guile is my second favorite scheme (after chicken). It's semi-R6RS, but still feels nice, and still feels scheme-y. It's nicely practical, and it's one of the rare Scheme implementations to support pthreads. Also, it has a lot of good libraries (behind Racket and Chicken, but better than many schemes), and an FFI that's actually pretty nice, but encourages writing a wrapper around the library that's more than paper-thin. It also embeds well, with it and Chibi being pretty much the only game in town on Scheme embedding.
I love it, just not as much as I love Chicken.
- na85 10y agoWhat is the scheme equivent of ANSI C or Common Lisp? By that I mean what is the default/main/vanilla scheme?
- hood_syntax 10y agoProbably MIT Scheme, but afaik it's not suitable for production applications since it's a tool for teaching. It is the 'vanilla' Scheme though
- bandrami 10y agoIIRC MIT is the only one that will actually run the SICP code out of the box.
- qwertyuiop924 10y agoNo, most of SICP should run in any scheme. Although a bit of it may be MIT specific.
- sigjuice 10y agoI was able to work through the first three chapters using racket in Emacs, including the part dealing with pictures http://i.imgur.com/fwCUUZI.png http://i.imgur.com/fwCUUZI.png
- qwertyuiop924 10y agoIt actually isn't. Like, at all.
- LukeShu 10y agoVanilla scheme is specified in "Revised⁷ Report on the Algorithmic Language Scheme" (R7RS, 2013); or the older R6RS (2007) or R5RS (1998). There was a 1990 IEEE standardization of scheme (IEEE Std 1178), and last revised in 1995. But it isn't recognized as the canonical vanilla scheme like RnRS is.
- davexunit 10y agoThere isn't really any such thing in the Scheme world. There are Scheme standards, but it's best to think of Scheme as a family of distinct, but closely related, languages instead.
- qwertyuiop924 10y agoScheme is a standard. The most common standards for Scheme are R5RS, the controversial R6RS, and R7RS, which hews closer to R5RS. While there are reference implementations, there isn't really a vanilla implementation, as even the references add their own tweaks. Here's why: Until R6RS, having a "vanilla" scheme wasn't practical: the scheme standard is minimalist, and excludes things like binary IO, modules, networking, OO, etc, although it does provide the tools to make your own module/OO system if you want. Writing portable scheme is almost impossible, and frowned upon. R6RS tried to extend the language and stdlib, so that writing portable scheme was possible. It was criticized for being overly complex, and for forgoing common SRFIs (informal standards that can be implemented across schemes), instead coming up with its own solutions to the same problems. Its acceptance was mixed. Guile implements some of it, but there are few full implmentations of the standard. The lack of acceptance for R6RS is sometimes seen as one of the catalysts to PLT Scheme casting off the anchors of the Scheme standard, and renaming itself Racket, which was already starting to happen, as PLT steadily deviated from the standard. R7RS was an attempt at a compromise: it provided the "small" language, already published, which is more based upon R5RS, and adds a module system and a few other extensions. The "large" language, still in development, will provide a large stdlib for doing Real Work. It will, however, notably lack a few things, such as an FFI, so while portable scheme will be possible, not all code will be portable (nor, I think, will all code ever be). Thus far, it seems to be going fairly well, with CHICKEN and Guile, some of the most popular scheme implementations, planning to support it. Probably the closest thing to a vanilla scheme is Chibi Scheme, the reference implementation of R7RS. It's small, lightweight, and designed for static linking and embedding, like Lua. It has its extensions, of course, but they're fairly minimal.
- AceJohnny2 10y ago> Writing portable scheme is almost impossible, and frowned upon. Jesus christ. I'm sure there are great, rational reasons for this. What were they? It's really interesting to think that the majority of our software platforms are A) Unix-derived and a bit of B) Windows, and both of those have pretty much taken over industry with Algol-derivatives (C, C++, Objective-C, Java...). I mean, it's news when a company says "We don't use the above!" With that in mind, it feels like Scheme is the like the Basques/Finns of the software world, a completely separate genealogical line that perdures to this day in small pockets here and there.