A simple scheme evaluator for fun
Clone the repo, then
make run
To build and run the evaluator
- Internal type system(mikal)
- Frontend parser & AST
- Basic REPL
- Environment model
-
+ - * /
(Maybeor and not
in future?) - Lambda and closure
-
cons/car/cdr
- GC
-
def/let/set
- quotation(
quote
andeval
) - TCO
-
if
- Read from file
(This should be easy :))Done by using pipe -
remainder
-
assert
- Comments
- TCO is kinda urgent, gc buffer will be quickly overflowed without TCO
- Error handling & report
- Type system is not fully closed
- Proper testbench and tests
- Comments on some confusing functions
You can also tests by using make tests
.
All the test answers are generated by CHICKEN Scheme Interpreter. You can generate your own test cases if you have that installed
Instructins to generate new tests:
- Implement test program(single file) under
tests/
directory - Run
python testall.py --gen-ans --ans-test
to generate ans files and run test script - You can also use
-csi-test
to directly compare stdout with CSI without generate anything
+ - * / remainder
lambda
cons car cdr
define set! let
= < >
if
assert