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 notin future?) - Lambda and closure
-
cons/car/cdr - GC
-
def/let/set - quotation(
quoteandeval) - 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-testto generate ans files and run test script - You can also use
-csi-testto directly compare stdout with CSI without generate anything
+ - * / remainderlambdacons car cdrdefine set! let= < >ifassert