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