; A list-of-images is either
; empty
; or (cons n lon),
; where n is an image and lon is a list-of-images.
您将如何开发一个height-total
使用图像列表并返回所有图像高度总和的函数?我很困惑。你能用这个功能image-height
吗?
解决方案自然地遵循递归过程;因为这看起来像家庭作业,所以我会让你弄清楚细节,当然你必须使用这个image-height
过程:
(define (height-total list-of-images)
(if <???> ; if the list is empty
<???> ; then what's the height sum of an empty list?
(+ (image-height <???>) ; else add the height of the first image and
(height-total <???>)))) ; advance recursion to the rest of the list
请注意,此问题和列表上的许多其他问题的解决方案都遵循相同的基本递归结构,我建议您仔细查看如何设计程序或The Little Schemer以更好地了解如何解决此类问题。
使用球拍:
(for/sum ([image image-list])
(image-height image))
或者
(foldl (lambda (image sum) (+ (image-height image) sum))
0 image-list)
或者
(apply + (map image-height image-list))