这是我正在阅读的书中的一个例子:
1 (define (length items)
2 (define (length-iter a count)
3 (if (null? a)
4 count
5 (length-iter (cdr a)(+ 1 count))))
6 (length-iter items 0))
我不明白的是怎么length-iter
知道计数?第一次使用 a 调用此过程时list
,它将依次使用两个参数定义另一个过程,我得到了很多。但它怎么知道那a
是list items
? 它还没有到达第 6 行,作为参数items
传递给where 。不知何故,尽管它已经知道这一点并且能够进行计算。感谢您对澄清这一点的任何帮助!length-iter
a