Ana*_*Ana 4 haskell type-conversion
我有很多Word8值,我加在一起.因为这可能导致溢出,结果需要是a Word16.
是否有更好的方法将所有这些值添加到一起,而不是以下:
fromIntegral a + fromIntegral b + fromIntegral c + fromIntegral d + ...
Run Code Online (Sandbox Code Playgroud)
哪个杂乱的代码没有真正添加任何清晰度?
如果您需要混合操作(正如您在评论中所建议的那样),您可以使用此技巧来批量分配新变量
let [a', b', c', d'] = map fromIntegral [a, b, c, d]
in a' + b' - c' + d'
Run Code Online (Sandbox Code Playgroud)
但是,如果要进行大量的操作,可能更容易定义自己的"混合"运算符
let a !+ b = fromIntegral a + fromIntegral b
let a !- b = fromIntegral a - fromIntegral b
a !+ b !- c !+ d :: Word16
Run Code Online (Sandbox Code Playgroud)