所以我试图理解这段代码,在盯着它看了太久之后,我决定在这里问是否有人可以帮助我理解它是如何以及为什么工作的
(define knock-knock
(letrec ([dig (lambda (i)
(cons (* i (list-ref knock-knock (- i 1)))
(dig (+ i 1))))])
(cons 1 (dig 1))))
然后按名称调用该函数,其值为:
(list-ref knock-knock 5)
所以我的主要问题是我看不到letrec
结束的地方。另一件事是我没有得到一个列表,那么我应该在第 3 行引用的列表中的第 4 个元素是什么?