Scheme 解释器是怎样解释 man or boy test 的?

DrRacket 有单步展开的功能。。。人肉推就是:=\u0026gt; (A 2 (lambda () 1) (lambda () -1))k : 2x1 : (lambda () 1)x2 : (lambda () -1)k \u0026gt; 1=\u0026gt; (B1)=\u0026gt; (A 1 B1 (lambda () 1))k : 1x1 : B1x2 : (lambda () 1)k = 1=\u0026gt; (B2)=\u0026gt; (A 0 B1 B2)k : 0x1 : B1x2 : B2=\u0026gt; (B1)B1.k : 1B1.x1 : (lambda () 1)=\u0026gt; (A 0 B1 B1.x1)k : 0x1 : B1x2 : (lambda () 1)k \u0026lt; 1=\u0026gt; (B1.x1)=\u0026gt; 1趁还没出门顺手解释一下这问题前后两次产生了两个不同的函数 B(我标的 B1 和 B2 )然后在第一次 k = 0 之后对 B1 求值B1 的闭包里 x1 还是 (lambda () 1)这个时候对 (A k B x1) 求值的结果就是 (lambda () 1) 也就得出了结果 1


    推荐阅读