• Stars
    star
    257
  • Rank 157,796 (Top 4 %)
  • Language
    Python
  • License
    MIT License
  • Created almost 16 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

McCarthy's Lisp in Python with macros. A celebration of 50+ years of symbolic processing.

Lithp is a(nother) McCarthy Lisp interpreter (with macros too) 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, 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, Mr. Steele, and Mr. Sussman, it is my intention to approach their works as if they are newly minted and implement them within the Lithp interpreter.

Features

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

License

This software is provided as-is under the MIT license.

More Repositories

1

lemonad

a functional programming library for javascript. an experiment in elegant JS.
JavaScript
658
star
2

thunks

posts and code related to personal studies
374
star
3

himera

JavaScript
278
star
4

ulithp

A micro LISP implementation in 24 lines of Ruby.
Ruby
270
star
5

papers-i-love

Computer science and computer-adjacent papers (and sometimes books) that have influenced me deeply.
261
star
6

baysick

An embedded Insane-specific Language for Scala implementing the BASIC programming language
Scala
246
star
7

trammel

Contracts programming with Clojure
Clojure
242
star
8

bacwn

clojure + datalog = <3
Clojure
137
star
9

minderbinder

converting one thing into another thing via Clojure.
Clojure
88
star
10

codd

a relational algebra library for JavaScript
JavaScript
60
star
11

skiing

a clojure combinator zoo
Clojure
44
star
12

tori-lisp

an ersatz lisp for tiny birds. a code riff.
JavaScript
42
star
13

evalive

various eval functions and macros for use with clojure. a code riff.
Clojure
33
star
14

unfix

Infix and Postfix library for Clojure that was cut from the book.
Clojure
30
star
15

lang-genealogy

Forth
9
star
16

reinen-vernunft

Code conversations in Clojure regarding the application of pure reasoning algorithms.
Clojure
8
star
17

tathata

An implementation of Clojure pods.
Clojure
7
star
18

thneed

An eclectic set of Clojure utilities that I've found useful enough to keep around.
Clojure
5
star
19

gamut-of-games

a repository of rules for games in text formats
4
star
20

fogos

Assembly
3
star
21

russ-forth

Russforth is a teeny-tiny Forth-esque implementation in Ruby.
Ruby
3
star
22

tafl

a clojure library to manipulate and query table-like data structures.
Clojure
3
star
23

spec-experiments

Clojure
1
star
24

battlestation

a description of my home battle station
1
star
25

abs-oddity

Clojure
1
star