所以我花了很多时间阅读和重读The Little Schemer第9章的结尾,其中适用的Y组合器是为“长度”函数而开发的。 我认为我的困惑归结为一个单一的陈述,对比两个版本的长度(在组合因子被排除之前): A: ((lambda (mk-length) (mk-length mk-length)) (lambda (mk-length) (lambda (l) (cond ((null? l) 0 ) (else (add1 ((mk-length mk-length) (cdr l)))))))) B: ((lambda (mk-length) (mk-length mk-length)) (lambda (mk-length) ((lambda (length) (lambda (l) (cond ((null? l) 0) (else (add1 (length (cdr l))))))) (mk-length mk-length)))) (第四版)指出,A“在我们将它应用于参数时返回一个函数”,而B“不返回函数”,从而产生自我应用的无限回归。 我被这个难住了 如果B被这个问题困扰,我不会看到A如何避免它。