0
我无法使用derivingUnbox将类型转换为拆箱类型。我曾尝试下面的代码,但它给错误“解析输入错误‘ - >’”上线[t | Color -> Word32 |]
将类型转换为拆箱类型
type Color = (Word8,Word8,Word8)
colorToWord32 :: Color -> Word32
colorToWord32 (r,g,b) = 0 .|.
(shift (fromIntegral r) 24) .|.
(shift (fromIntegral g) 16) .|.
(shift (fromIntegral b) 8)
word32ToColor :: Word32 -> Color
word32ToColor color = (r,g,b)
where
r = fromIntegral (shift (color .&. 0xFF000000) (-24))
g = fromIntegral (shift (color .&. 0x00FF0000) (-16))
b = fromIntegral (shift (color .&. 0x0000FF00) (-8))
derivingUnbox "Color"
[t | Color -> Word32 |]
colorToWord32
word32ToColor
感谢它的工作。我将测试这两种配置,以决定哪一种配置对我的应用程序更快。 – Ahzaz 2014-10-30 12:51:08