【发布时间】:2015-05-28 09:45:44
【问题描述】:
我试图理解懒惰。因为 0 乘以任何数字都是 0,所以 product [0..] 不应该计算为 0 吗?我也试过foldl (*) 1 [0..],并将我自己的产品定义为
myProduct 0 _ = 0
myProduct _ 0 = 0
myProduct a b = a*b
为什么一找到 0 就不会停止折叠?
【问题讨论】:
-
可以说并非总是如此:
foldl (*) 1 [0, undefined] -
另外,NaN 怎么样?因为,在 IEEE 浮点中,任何东西 * NaN = NaN。特别是,0 * NaN = NaN。