添加时,Haskell重复使用fromIntegral

时间:2014-10-10 16:34:01

标签: haskell type-conversion

我添加了多个Word8值。因为这可能导致溢出,结果必须是Word16

是否有更好的方法将所有这些值添加到一起,而不是以下内容:

fromIntegral a + fromIntegral b + fromIntegral c + fromIntegral d + ...

这会使代码混乱而不会增加任何清晰度?

1 个答案:

答案 0 :(得分:6)

如果您需要混合操作(正如您在评论中所建议的那样),您可以使用此技巧来批量分配新变量

let [a', b', c', d'] = map fromIntegral [a, b, c, d]
in a' + b' - c' + d'

但是,如果要进行大量的操作,可能更容易定义自己的操作 “混合”运营商

let a !+ b = fromIntegral a + fromIntegral b
let a !- b = fromIntegral a - fromIntegral b

a !+ b !- c !+ d :: Word16