2014-10-10 81 views
4

我有一些Word8值,我加在一起。因爲這可能會導致溢出,所以結果必須是Word16Haskell重複使用fromIntegral時添加

有沒有更好的方式來所有這些值比添加下面一起來:

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

其雜波的代碼沒有真正添加任何清晰?

+2

'$總和地圖fromIntegral [A,b,C,d,E,...]'? – bheklilr 2014-10-10 16:35:04

+0

是的,這是有效的。但恐怕我可能不得不在混合運營商之間的數字,如+和 - ,所以這可能不會很好。 – Ana 2014-10-10 16:39:22

+0

您可以始終將新變量名稱綁定到加寬值,然後在實際計算中使用這些名稱。但是,這甚至更多地輸入,而不是更少...... – MathematicalOrchid 2014-10-10 16:43:54

回答

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