diff --git a/articles/scheme.md b/articles/scheme.md index fc875f5..8c99e1b 100644 --- a/articles/scheme.md +++ b/articles/scheme.md @@ -13,6 +13,18 @@ work on R7RS began, splitting Scheme into two different (but still similar) lang a big language for practical use and a small, minimalistic version. Of course R7RS is still less bloated than [Common Lisp](common_lisp.md) and other mainstream languages. +## Scheme Requests for Implementation (SRFI) +Aside from the RnRS, Scheme is also informally standarized by the SRFI, in which extensions to Scheme are discussed, mainly +libraries. Some SRFIs are: +- [SRFI-13](https://srfi.schemers.org/srfi-13/srfi-13.html): adds string manipulation procedures +- [SRFI-43](https://srfi.schemers.org/srfi-43/srfi-43.html) +and [SRFI-133](https://srfi.schemers.org/srfi-133/srfi-133.html): both adding vector manipulation procedures +- [SRFI-1](https://srfi.schemers.org/srfi-1/srfi-1.html): list library +- [SRFI-125](https://srfi.schemers.org/srfi-125/srfi-125.html): hash tables +- [SRFI-48](https://srfi.schemers.org/srfi-48/srfi-48.html): Common Lisp-like `format` procedure + +Unlike the revisions, these aren't hard requirements to implement, so Scheme implementations are free to implement them or not. + ## Implementations Since Scheme (specially the R5RS standard) is simple, there are multiple implementations: - [CHICKEN Scheme](https://call-cc.org/): compiler and interpreter, supports extensions in a modular way, @@ -24,6 +36,7 @@ called "eggs". - [Chibi Scheme](https://synthcode.com/scheme/chibi/): small implementation with a focus in being embeddable. - [Cyclone Scheme](https://justinethier.github.io/cyclone/): compiler, aims to support the R7RS standard. - [Gerbil Scheme](https://cons.io/) +- [Gauche Scheme](https://practical-scheme.net/gauche/) - ... ## Examples @@ -50,14 +63,16 @@ called "eggs". ## Resources - CHICKEN Scheme tutorials (of course most also applies to other implementations): +- - [R5RS document](https://conservatory.scheme.org/schemers/Documents/Standards/R5RS/) - [Official Scheme site](https://www.scheme.org/) -- A incomplete tutorial in wikibooks: -- : Scheme in a web browser, seems to be Gambit Scheme. -- -- - [Teach Yourself Scheme in Fixnum Days](https://docs.scheme.org/tyscheme/) - [A Scheme Primer](https://files.spritely.institute/papers/scheme-primer.html) +- [Practical Scheme](https://practical-scheme.net/) - [R7RS site](https://r7rs.org/) +- : Scheme in a web browser, seems to be Gambit Scheme. +- : ditto +- A incomplete tutorial in wikibooks: +- List of SRFIs and which implementations implement each: - The *CONS Should Not CONS Its Arguments, Part II: Cheney on the M.T.A.* paper, describes how to compile Scheme to C efficiently by using CPS.