I can only come up with a find-binding-frame function and manually controls its
process under different situations.
But Zhang come up with a more higher level abstraction which only expose two
functions to all the rest logic, which is null-action and eq-action. Clean and robust!
4.13
4.14
When eval '(map + '(1 2) '(3 4)), primitive procedure + is evaluated as '(primitive +).
Then expression becomes (apply-in-underlying-scheme map '(primitive +) '(1 2) '(3 4)), then failed.
4.15
There are two possible outcomes to run (try try), either returns halted or runs forever.
(try try) returns halted: then it would fall into the (run-forever) trap. Contradiction.
(try try) runs forever: then the first condition is false, halted is returned. Contradiction.