我只是在玩scheme/lisp,并正在考虑如何纠正我自己的定义average
。我不确定如何做一些我认为需要的事情。
- 定义一个接受任意数量参数的过程
- 计算这些参数
- 将参数列表传递给 (+) 以将它们加在一起
有人有定义的例子吗average
?我似乎对 LISP 的了解不够,无法进行网络搜索来获取我正在寻找的结果。
这个定义将是一个非常简单的单行,但在不破坏它的情况下,您应该研究一下:
当你明白了这一点后,你就可以追求更多:
剧透是:
(define (average . ns) (/ (apply + ns) (length ns)))
让它需要一个参数:(define (average n . ns) (/ (apply + n ns) (add1 (length ns))))
Use foldl
: (define (average n . ns) (/ (foldl + 0 (cons n ns)) (add1 (length ns))))
使其使用浮点数:(define (average n . ns) (/ (foldl + 0.0 (cons n ns)) (add1 (length ns))))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)