Lisp1.5 interpreter with M-expression

I made a Lisp interpreter for my enjoyment.
Old Lisp 1.5. It accepts Lisp code with M-expression.

e.g.
Lisp 1.5 in Elixir
? third[x] = car[cdr[cdr[x]]]
third
? third[(1 2 3)]
3
?

There is no practicality. Programming for fun.

5 Likes

Always a good reason. ^.^

2 Likes

I’m honored if you have fun.
I think Mr. José Valim is a genius alongside Dr. McCarthy.

I added parallel functionality to Elxlisp.
It becomes fast with Fibonacci etc.
I use Spawn of Elixir.
I also added an option for S expression.

e.g.
mix elxlisp
Lisp 1.5 in Elixir
? load[“test.meta”]
T
? time[fib[30]]
“time: 5080842 micro second”
“-------------”
832040
? quit[]
“goodbye”
mix elxlisp para
Lisp 1.5 in Elixir para
? load[“test.meta”]
T
? time[fib[30]]
“time: 3193526 micro second”
?
? quit[]
“goodbye”
mix elxlisp sexp
Lisp 1.5 in Elixir sexp
S? (cons 'a 'b)
(a . b)
S? (length '(1 2 3))
3
S?

1 Like

I am also adding a compiler.

e.g.
Lisp 1.5 in Elixir M-expression in sequential
? compile[“test.meta”]
ok
? load[“test.o”]
T
? time[fib[30]]
“time: 23140 micro second”
“-------------”
832040
? time[tarai[12;6;0]]
“time: 105260 micro second”
“-------------”
12
? time[ack[3;9]]
“time: 98380 micro second”
“-------------”
4093
?

2 Likes

I have registered Elxlisp on Hex. It is Lisp1.5 interpreter/compiler which also accepts M expressions.
Enjoy nostalgia while reading John Allen’s book.
For those who are new to Lisp, there may be new discoveries.

3 Likes

This brings back lots of good memories. I still have McCarthy’s MacLisp 1.5 manual lying around somewhere!

2 Likes

It is a very valuable book, a treasure.

1 Like