This is a very small and limited Lisp interpreter based on Andru Luvisi's. Its lightweightness is very useful in learning how Lisp and Scheme internals work!
It's a single C source file which you can run like this:
gcc sl3.c && ((cat corelib.lisp; cat /dev/stdin) | ./a.out )
This will compile the interpreter, load the corelib and get you ready with a "repl" where you can experiment. Once the interpreter is running, you could try
(+ 1 1)
(cdr '(1 2))
(is-prime 103)
(define X '(3 4 5))
(print 'first element 'of 'list 'X 'is (cdr X))