これは私が読んでいる本の例です:
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
、カウントについてどのように知ることができるかということです? このプロシージャが で初めて呼び出されるとlist
、次に 2 つの引数を持つ別のプロシージャが定義されます。しかし、それが であることをどうやって知るa
のlist items
でしょうか? まだ 6 行目に達していませんが、引数として にitems
渡されます。どういうわけか、それはすでにこれを知っており、計算を行うことができます。これを少し明確にするための助けをいただければ幸いです。length-iter
a