Skip to content

cai-lw/lisp-interpreter-haskell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A minimal Lisp-like language interpreter in Haskell

A course project of Functional Programming at Tsinghua University in the fall semester of 2016.

Features

  • Purely functional
  • Number, Boolean, pair types and built-in functions.
  • Lexical scope (let assignment)
  • Fully functional lambda calculus

Non-features :(

  • No control flow with native Boolean type. (Use Church encoding, though you have to re-invent everything and you won't get neat output).
  • No recursion. (Use Y combinator if you need recursion)

Usage

cd src
cabal build
dist/build/ki -i FILE # Interpret FILE and write result to stdout
dist/build/ki --repl # Open in REPL mode

See docs/README.md (Chinese) for details.

See examples for sample programs.

Technical Details

See docs/report.md (Chinese).

About

A minimal Lisp-like language interpreter in Haskell

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published