我正在尝试编写一个带有两个参数的 forAll 过程:一系列的开始值和结束值。生成的闭包还需要两个参数:一个应用于系列中所有元素的操作,以及一个初始值。
这就是我所拥有的,我似乎遗漏了一些东西或者我不理解闭包背后的概念。
(define (forAll n m)
(if (>= n m) '()
(forAll (+ n 1) m))
(lambda (op start) (op start n m))
)
这看起来像是一个“将现有功能组合成新功能”的练习。
如果您还没有这样做,请先编写一个生成数字列表的函数。
用它来实现这个功能。
回顾一下你最近学到的东西,看看你是否已经有了一个函数来完成与闭包应该做的类似的事情。
你最终得到的结果可能是这样的:
(define (forAll n m)
(lambda (op start)
(... code that builds a list and computes the result ...)))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)