Scheme interpreter written in Scala, based on PC Scheme 2.0.
- Core interpreter
- Function definitions,
define
- Quoting with
quote
-
let
environment expander -
let*
incremental environment expander -
letrec
recursive environment expander
-
if
expression -
cond
expression
- Lists with
cons
- Lists with
list
- Lists
car
- Lists
cdr
- Lists
c...r
- Basic arithmetic operations:
+
,-
,*
,/
- Increment, decrement operators:
add1
,sub1
- Modulo
modulo
- Remainder
remainder
- Comparison functions:
<?
,<=?
,=
,<=
... - Equivalence functions:
eq?
,eqv?
,equal?
- Util functions:
null?
,atom?
,pair?
,number?
- Logical operators:
and
,or
,not
-
append
for working with lists -
delete!
for working with lists -
even?
,odd?
for working with numbers -
proc?
for recognizing functions as arguments
Install sbt or by running sudo apt install sbt
. Clone this repository, and from terminal navigate to root folder of the cloned repository. Run sbt
from command line.
Once the interpreter is opened, type compile
in order to build the project and type run
in order to run. To run all tests type test
.
Coming soon...
Coming soon...