Skip to content

grzegorz-bielski/scala-lisp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

scala-lisp

An (outstandingly) partial implementation of Lisp/Scheme based on Write You A Scheme 2.0 ported from Haskell to Scala using pure functional programming techniques with cats, cats effect and cats monad transformers.

It includes an interactive REPL, file system access, and its own, although very poor, standard library.

Running the project

CLI options

  • interpret the file at given path:

    sbt "run path <path>"
     sbt "run path ./src/main/resources/demo/add.scm"
     ...
     3
  • start the REPL session:

    sbt "run repl"
    ...
    λ: (+ 1 2)
    3
  • eval passed expression:

    sbt 'run eval "(+ 1 2)"'
    ...
    3

todo

  • variable declaration in REPL (!)
  • Fix IO bugs, make it more robust
  • rewrite to StateT, implement Y combinator

About

A variation of Lisp written in pure FP Scala

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published