Scheme解释器执行自身定义的阶乘结果[#58]

run-inside将Scheme解释器计划的完整定义放入外层解释器,并在该环境中调用run。外层解释器处理内层解释器的代码,内层处理用户程序:

example. Scheme 自解释的阶乘结果为 120[mce-self-factorial]

(run-inside '((define (factorial n)
                   (if (= n 0) 1 (* n (factorial (- n 1)))))
                 (factorial 5)))

⇒ 120 · checked

特殊形式、闭包应用和环境查找都经过解释器;数值、列表和可变框架原语仍由宿主提供。这是本子集的一层自解释,不是完整Scheme兼容性或独立运行时的自举。