补全:递归

(每道题开头都有同一段:这门语言的 parser、show()、环境 Env(define / find / get / set,get 和 set 查不到就抛 RunError)、函数值 Closure(name, params, bod

开始练习 →

闭包是什么

小盒子离开了出生的那间房 走多远都有一根线拴着那间房 这门小语言(在 03/05 的基础上加了三样): let x = 1 ; x = x + 1 ; if ( c ) { … } else { … } while ( c )

开始练习 →

调用时看哪个环境

调用一个函数时,函数体里的变量沿哪条链找?【0】

开始练习 →

计数器

小盒子离开了出生的那间房 走多远都有一根线拴着那间房 (每道题开头都有同一段:这门语言的 parser、show()、环境 Env(define / find / get / set,get 和 set 查不到就抛 RunError)、函数

开始练习 →

词法还是动态

(每道题开头都有同一段:这门语言的 parser、show()、环境 Env(define / find / get / set,get 和 set 查不到就抛 RunError)、函数值 Closure(name, params, bod

开始练习 →

补全:闭包捕获的是环境不是值

(每道题开头都有同一段:这门语言的 parser、show()、环境 Env(define / find / get / set,get 和 set 查不到就抛 RunError)、函数值 Closure(name, params, bod

开始练习 →

补全:表达式语句

(每道题开头都有同一段:这门语言的 parser、show()、环境 Env(define / find / get / set,get 和 set 查不到就抛 RunError)、函数值 Closure(name, params, bod

开始练习 →

补全:数一数链有几层

(每道题开头都有同一段:这门语言的 parser、show()、环境 Env(define / find / get / set,get 和 set 查不到就抛 RunError)、函数值 Closure(name, params, bod

开始练习 →

补全:动态作用域的对照版

(每道题开头都有同一段:这门语言的 parser、show()、环境 Env(define / find / get / set,get 和 set 查不到就抛 RunError)、函数值 Closure(name, params, bod

开始练习 →

运行时错误和编译时错误

05 的检查器在跑之前报「类型不匹配」;本条的解释器在跑的时候报「除以零」。除以零没法在跑之前报,是因为【0】。

开始练习 →