# Awesome Scheme [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome)

> A curated list of really awesome Scheme materials, tools and resources.


## Contents
- [Frameworks](#frameworks)
- [Resources](#resources)
- [Languages](#languages)

## Languages
A list of Languages implemented in Scheme.

- [Pie](https://docs.racket-lang.org/pie/index.html) - Pie is a little language with dependent types that accompanies [The Little Typer](http://thelittletyper.com/).

## Frameworks
A list of Frameworks for Scheme.

- [Artanis](https://gitlab.com/NalaGinrut/artanis) - GNU Artanis aims to be a web application framework for Scheme.

## Resources

A list of resources, books and references about Scheme.

### Books

- [Structure and Interpretation of Computer Programs 2ed](https://mitpress.mit.edu/sites/default/files/6515.pdf) - A prime example of a masterpiece. A great intro to Computer science and a really good practice for learning Scheme. Highly recommended.
<!-- trick for github not render --><!-- - [An Introduction to Scheme and its Implementation] - ftp://ftp.cs.utexas.edu/pub/garbage/cs345/schintro-v14/schintro_toc.html - Learn and use Scheme. Great Resource. -->
- [An Introduction to Scheme and its Implementation](https://link.zhihu.com/?target=ftp://ftp.cs.utexas.edu/pub/garbage/cs345/schintro-v14/schintro_toc.html) - Learn and use Scheme. Great Resource.
- [The Scheme Programming Language 4ed](http://www.scheme.com/tspl4/) - Prime reference book.
- [Teach Yourself Scheme](http://ds26gte.github.io/tyscheme/index.html) - Nice Scheme tutorial.

### Videos

- [Structure and Interpretation of Computer Programs](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/video-lectures/) - Twenty video lectures by Hal Abelson and Gerald Jay Sussman are a complete presentation of the course of Structure and Interpretation of Computer Programs. Must see.

### Websites
- [Schemers](http://www.schemers.org/) - The improper list of Scheme resources. A prime reference site.
- [Community Scheme Wiki](http://community.schemewiki.org/?) - Wiki page for Scheme.
- [SRFI](https://srfi.schemers.org/) - Scheme requests for implementation.
- [The Adventures of a Pythonista in Schemeland](http://www.artima.com/weblogs/viewpost.jsp?thread=251474) - Tutorial for Scheme targeted for Python Developers.
- [r5rs](http://groups.csail.mit.edu/mac/ftpdir/scheme-reports/r5rs-html/r5rs_toc.html) - The official Scheme language definition and reference.
- [Scheme Repl](https://repl.it/languages/scheme) - Online Scheme REPL.
- [Reddit handle](https://www.reddit.com/r/scheme/) - Reddit page on Scheme.

### Implementations
- [Racket Lang](https://racket-lang.org/) - The most confortable enviroment to start working with Scheme. It offers great documentation and an awesome IDE. Highly Recommended.
- [Chez Scheme](https://www.scheme.com/) - The world's fastest and most reliable implementation of Scheme, originally developed by Kent Dybvig, bought and open-sourced by Cisco. It has built Racket's compiler+JIT & GC too, by project Racket-on-Chez.
- [Chicken Scheme](https://www.call-cc.org/) - Portable Scheme Compiler that works well. Has nice documentation and active support.
- [Gambit Scheme](http://gambitscheme.org/wiki/index.php/Main_Page) - Another complete, portable, efficient and reliable implementation.
- [Schibi Scheme](http://synthcode.com/wiki/chibi-scheme) - Minimal Scheme Implementation for use as an Extension Language.
- [Guile Scheme](https://www.gnu.org/software/guile/) - Gnus Scheme Implementation and Programming environment.
- [Kawa Scheme](https://www.gnu.org/software/kawa/index.html) - Runs on the JVM. Part of the Kawa language Framework.

## Contribute

Contributions welcome! Read the [contribution guidelines](contributing.md) first.


## License

[![CC0](http://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg)](http://creativecommons.org/publicdomain/zero/1.0)

To the extent possible under law, Theo Despoudis has waived all copyright and
related or neighboring rights to this work.
