Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Help me choose a suitable Scheme implementation

Tags:

scheme

This seems to be really too much to ask for, given the systematically outdated content on this topic that is scattered throughout the internet.

I simply can't find a noiseless and up to date list of available Scheme implementations (except there, but I'd have enjoyed a colorful feature summarizing table) so I'm asking the community instead of trying dozens of implementations of a language I don't master yet. Help me enjoy this amazing language.

Requirements:

  • Free (as in speech)
  • Lightweight: no unnecessary libraries beyond the standard, must compile fast. Anything lighter than Guile qualifies as lightweight.
  • R6RS (no troll please, I'm learning the language and feel the need to stick to something standard)
  • No .NET, no JVM
  • Should work at least on Linux
  • Should work at least on x86
  • Easy FFI
  • Bonus point for fast implementations (too bad Bigloo doesn't support R6RS).

I'm currently using Ypsilon, that I find great, but not maintained since 2008. Guile can be a good competitor, but it seems quite heavy (and FFI is far easier with Ypsilon).

I may be missing some quality implementations, so feel free to share your experiences.

UPDATE Thank you for your answers, I will go for Larceny, since it provides pretty much everything I am looking for. Happy scheming to all of you !

like image 966
Alexandre C. Avatar asked Aug 23 '11 21:08

Alexandre C.


People also ask

What is the best scheme implementation?

PLT Scheme provides an interpreter, a compiler and an IDE called DrScheme: it is probably the biggest Scheme implementation out there and it is also probably the most used implementation and the one with most libraries.

What is the Sicp scheme?

For SICP, you need a Scheme implementation (specifically, one that supports IEEE Scheme if you're using the second edition of the book -- R5RS, the most widely-implemented standard, is a strict superset of IEEE Scheme and works just fine with the code in the book, apart from the non-standard "picture language" stuff in ...


1 Answers

You may want to take a look at Racket. Its documentation and IDE are pretty good, it's JIT-compiled, and it supports a variety of languages including R6RS. The only requirement of yours that I'm not sure Racket fulfills is being lightweight—it's a matter of perspective whether that's true for it or not.

If you don't care about the heaps of functionality that Racket provides, Larceny might warrant consideration as well. It was written by Will Clinger, who was personally involved in the R6RS process. Larceny is one of the most complete implementations of R6RS. Petite Larceny can be tricky to compile, but this may not matter much depending on the platform you're targeting.

Finally, there's Chez Scheme. I have no experience with it; it has a reputation of being an efficient and well-supported Scheme, though. In any case, note that, as far as I can tell, you need the commercial license if you want access to the FFI.

Edit: Added Larceny and Chez Scheme.

like image 89
Matthias Benkard Avatar answered Sep 16 '22 16:09

Matthias Benkard