跑一段控制流

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

开始练习 →

补全:let、assign、print

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

开始练习 →

补全:if

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

开始练习 →

补全:while

(每道题开头都有同一段:这门语言的 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

开始练习 →

let 和赋值的差别

环境里 let x = 1 ; 和 x = 2 ; 做的事不同:【0】。

开始练习 →

查不到怎么办

eval_ 查变量沿父链一路找到最外层还没有,该【0】。

开始练习 →

环境链有多长

while 里嵌一个 if,if 里又 let 了一个变量。此时环境链是【0】。

开始练习 →

看环境链

(每道题开头都有同一段:这门语言的 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

开始练习 →