Skip to content

andwu137/lambda-hs

Repository files navigation

lambda-hs

Sorry for not using github features for features/issues :)

How To Run:

  • Load File with Interpreter: stack run -- -i <filename>, e.g. stack run -- -i input/test.lb
  • Run Interpreter: stack run or stack run -- -i
  • Run a File's Main: stack run -- <filename>, e.g. stack run -- input/test.lb
    • The file must contain the identifier defined in Main.hs. As of writing, it is defined as module_main.

asciinema: a repl example of lists

TODO:

  • add a test suite for the parser and evaluation
  • repl/cli
    • add multilining
    • special commands while in the interpreter (:q, :r)
    • add more commandline options
  • evaluation:
    • strictness
  • improve error messages:
    • Store line counts for symbols
  • operators:
    • Add precedence parsing
    • Allow cool syntax for definitions of infix functions
  • add datatype to lambdaline

Issues:

  • letexpr and expr are called during assignment parsing (performance)