Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fluentpython/lispy
Learning with Peter Norvig's lis.py interpreter
https://github.com/fluentpython/lispy
evaluator lisp parser pattern-matching python scheme
Last synced: about 6 hours ago
JSON representation
Learning with Peter Norvig's lis.py interpreter
- Host: GitHub
- URL: https://github.com/fluentpython/lispy
- Owner: fluentpython
- License: mit
- Created: 2021-06-19T20:17:52.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-07-06T13:50:47.000Z (4 months ago)
- Last Synced: 2024-10-31T22:34:28.272Z (13 days ago)
- Topics: evaluator, lisp, parser, pattern-matching, python, scheme
- Language: Scheme
- Homepage:
- Size: 1.75 MB
- Stars: 237
- Watchers: 7
- Forks: 33
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Learning with lis.py
This repository contains variations of Peter Norvig's
[`lis.py` interpreter](https://github.com/norvig/pytudes/blob/c33cd6835a506a57d9fe73e3a8317d49babb13e8/py/lis.py)
for a subset of [Scheme](https://en.wikipedia.org/wiki/Scheme_(programming_language)),
described in his post [(How to Write a (Lisp) Interpreter (in Python))](https://norvig.com/lispy.html).## Provenance, Copyright and License
`lis.py` is
[published](https://github.com/norvig/pytudes/blob/c33cd6835a506a57d9fe73e3a8317d49babb13e8/py/lis.py)
in the [norvig/pytudes](https://github.com/norvig/pytudes) repository on Github.
The copyright holder is Peter Norvig and the code is licensed under the
[MIT license](https://github.com/norvig/pytudes/blob/60168bce8cdfacf57c92a5b2979f0b2e95367753/LICENSE).Unless otherwise noted, I wrote the changes and additions described in the README files in each directory.
## References
### Articles
* Norvig, Peter: [(How to Write a (Lisp) Interpreter (in Python))](https://norvig.com/lispy.html)
* Norvig, Peter: [(An ((Even Better) Lisp) Interpreter (in Python))](https://norvig.com/lispy2.html)
* Graham, Paul: [The Roots of Lisp](http://www.paulgraham.com/rootsoflisp.html)
* Steele, Guy Lewis, Jr.; Sussman, Gerald Jay: [The Art of the Interpreter, or the Modularity Complex](https://dspace.mit.edu/handle/1721.1/6094)
* McCarthy, John: [Recursive functions of symbolic expressions and their computation by machine, Part I](https://dl.acm.org/doi/abs/10.1145/367177.367199) π### Books
* Abelson, Harold; Sussman, Gerald Jay; Sussman, Julie: [Structure and Interpretation of Computer Programs, Second Edition](https://mitpress.mit.edu/sites/default/files/sicp/index.html) (SICP)
* Dybvig, R. Kent: [The Scheme Programming Language, Fourth Edition](https://scheme.com/tspl4/) (TSPL)
* Harvey, Brian; Wright, Matthew: [Simply Scheme: Introducing Computer Science, Second Edition](https://people.eecs.berkeley.edu/~bh/ss-toc2.html)
* Friedman, Daniel P.; Felleisen, Matthias: [The Little Schemer, Fourth Edition](https://mitpress.mit.edu/books/little-schemer-fourth-edition) π
* Butterick, Mathew: [Beautiful Racketβan introduction to language-oriented programming using Racket](https://beautifulracket.com/)
* Felleisen, Matthias; Findler, Robert Bruce; Flatt, Matthew; Krishnamurthi, Shriram: [How to Design Programs, Second Edition](https://htdp.org/)
* Krishnamurthi, Shriram: [Programming Languages: Application and Interpretation](https://www.plai.org/) (PLAI)
* Sperber, Michael; et. al. [Revised6 Report on the Algorithmic Language Scheme](http://www.r6rs.org/) (R6RS)### Interpreters and tools
* [Racket](https://racket-lang.org/): "the Language-Oriented Programming Language"
* [GNU Guile](https://www.gnu.org/software/guile/): "GNU Ubiquitous Intelligent Language for Extensions"
* [Chicken Scheme](https://www.call-cc.org/): "a practical and portable Scheme system"
* [A Meta-Circular Interpreter for Scheme](https://scheme.com/tspl4/examples.html#./examples:h7): example 12.7 from TSPL
* [McCarthy's original Lisp](references/jmc.lisp) converted to Common Lisp by Paul Graham ([local copy](references/jmc.lisp), [original download](https://sep.yimg.com/ty/cdn/paulgraham/jmc.lisp?t=1595850613))*Luciano Ramalho*
SΓ£o Paulo, August 23, 2021