Skip to content

martinjungblut/apocalisp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

apocaLISP

apocaLISP is a LISP interpreter, a fully compliant implementation of Make a LISP(MAL).

I wrote it mostly to learn more about programming language interpreter internals. The parser was hand-written, not generated by applying Backus-Naur forms.

Currently it supports the following features:

  • A dynamic typing system(signed integers, signed floats, strings, booleans, nil, functions and atoms).
  • Atoms: a Closure-inspired type to manage state via functional application.
  • Eager and lazy evaluation.
  • Lexical scoping.
  • Higher order functions, including full closure support.
  • Loading and interpreting programmes from external files.
  • Arbitrary precision numbers.

It leverages two test suites: one inherited from MAL, and one written by me, for when I want to have finer grained control of the executable specification.

At some point I might transform apocaLISP into a full blown shell, replacing /bin/sh on my workstations.

About

MAL(make a lisp) interpreter written in Go.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published