Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fogus/lithp
McCarthy's Lisp in Python with macros. A celebration of 50+ years of symbolic processing.
https://github.com/fogus/lithp
langdev
Last synced: 2 days ago
JSON representation
McCarthy's Lisp in Python with macros. A celebration of 50+ years of symbolic processing.
- Host: GitHub
- URL: https://github.com/fogus/lithp
- Owner: fogus
- License: mit
- Created: 2008-12-17T03:14:52.000Z (almost 16 years ago)
- Default Branch: master
- Last Pushed: 2023-08-18T17:49:42.000Z (about 1 year ago)
- Last Synced: 2024-11-08T03:53:17.555Z (10 days ago)
- Topics: langdev
- Language: Python
- Homepage: http://fogus.me/fun/lithp
- Size: 141 KB
- Stars: 260
- Watchers: 6
- Forks: 28
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Lithp is a(nother) McCarthy Lisp interpreter (with macros implemented in Lithp) written in the Python Programming Language.
*note: currently only the Python port is fully operational*
RIP John McCarthy 1927.09.04 - 2011.10.23
RIP Timothy Hart 1939.09.18 - 2014.01.20
What The?!?
===========My last true exposure to Lisp was during my college years. Since then I have hacked away at a bit of ELisp, but even that was done in the spirit of immediacy. With the resurgence of Lisp, thanks to the advocacy of [Mr. Paul Graham](http://www.paulgraham.com), I feel it is once again time to (re)learn the language. However, times have changed; I have written my recursive algorithms, I have explored the beauty of closures, and I have touched on functional programming with the grace and emotion of a lover. However, I fear that if I simply take up the task of (re)learning Lisp then I will take these notions for granted and not appreciate them fully as they relate to Lisp itself. Therefore, I feel that my best chance for truly absorbing Lisp is the invent Lisp. While the leg-work has already been done by such luminaries as [Mr. McCarthy][jmc], [Mr. Steele][steele], and [Mr. Sussman][sussman], it is my intention to approach their works as if they are newly minted and implement them within the Lithp interpreter.
[steele]: http://research.sun.com/people/mybio.php?uid=25706
[jmc]: http://www-formal.stanford.edu/jmc
[sussman]: http://swiss.csail.mit.edu/~gjsFeatures
========
The Lithp interpreter provides the absolute core functions of McCarthy's original as outlined in his classical paper. That is, there are only seven functions and two special forms.Seven Functions
---------------
1. `atom`
2. `car`
3. `cdr`
4. `cond`
5. `cons`
6. `eq`
7. `quote`Two Special Forms
------------------
1. `label`
2. `lambda`Running
=======cd src/py
python lithp.pyLicense
=======This software is provided as-is under the [MIT license](http://opensource.org/licenses/MIT).