finished Section 3.1 - Section 3.3.4 and exercises
correct some mistakes in section2.3, refactor the util into a separate
library file
added a sleep into propagate to easy debugging callback loops
implemented the constrain system myself, with some remaining bugs:
- changes after the first resolvation will incur loops
factored out the c-f converter and added some notes about
lessons leanred from implementations on books
improved my own solution taking from book's example:
1. implement a forget-value! method to reset the connector
2. remove the usage of scheduling system
finished the constraint system in 3.3.5
working on the evaluator, finally making it work:
- design the procedure and environment model myself
- reference the book to build the eval and apply procedures
- solved some problems caused by keywords conflicts
added more tests for the features developed and fixed some bugs in evaluation
- fixed bugs to expand syntax sugar of define
- added more build-in operations
- added true and false value
- fixed bugs to run sequence evaluation
- added tests to assert various features
added a seq->exp helper method to handle one and multiple seq exps
installed the macro for 'cond
refactor the macro processor in a data-directed style
remove *global-env* and establish global-env abstraction in `run and
env operations
removed list-of-values and use `map' instead
added remainder build-in operator and fermat-test case
use true? to separate and highlight the connection of implementing and
implemented language region

right now, use the same representation of truth
added `or and `and as macros
use 'false as default value for false
added cond recipient syntax and an assoc build-in procedure
added let macro and related tests