Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Grubba27/write-yourself-a-scheme
a scheme interpreter written in go based on eatonphil twitch stream.
https://github.com/Grubba27/write-yourself-a-scheme
Last synced: 3 months ago
JSON representation
a scheme interpreter written in go based on eatonphil twitch stream.
- Host: GitHub
- URL: https://github.com/Grubba27/write-yourself-a-scheme
- Owner: Grubba27
- Created: 2023-02-01T21:07:29.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-05-30T21:48:31.000Z (over 1 year ago)
- Last Synced: 2024-05-31T15:50:48.769Z (6 months ago)
- Language: Go
- Homepage:
- Size: 17.6 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.MD
Awesome Lists containing this project
README
# Write your own Scheme interpreter in Go
This is a Repo that was build alongside [eatonphil](https://www.twitch.tv/eatonphil) from the twitch stream.
[Part 1: A lexer](https://www.youtube.com/watch?v=lZNhZI-dN9k)
[Part 2: Parsing](https://www.youtube.com/watch?v=5ttFEPQopXc)
[Part 3: AST walking interpreter](https://www.youtube.com/watch?v=YwmGcverSHI)
[Part 4: Cleanup and Fibonacci](https://www.youtube.com/watch?v=skDhTWILH8I)Give him a star on the original [repo](https://github.com/eatonphil/livescheme) and follow him on twitch if you like the content.
```bash
$ go mod tidy
$ go test
$ go build
$ cat examples/fib.scm
(fn fib (a)
(if (< a 2)
a
(add (fib (sub a 1)) (fib (sub a 2)))))(fib 11)
$ ./livescheme examples/fib.scm
89```
## Missing features
- [ ] Constant propagation
- [ ] More keywords
- [ ] Types(static type checking)