[Haskell-cafe] Review request for my encoding function

C K Kashyap ckkashyap at gmail.com
Sat Jan 8 10:58:33 CET 2011

Thanks Ivan,

> The more "Haskellian" approach would be to use a dedicated datatype to
> specify the number of bits, not to have a partial function on Int.
> Possibly even encode the RGB triple such that it specifies the number
> of bits rather than separating each value.

Did you mean something like this?

data BitsPerPixel = Bpp8 | Bpp16 | Bpp32

encode :: Color -> BitsPerPixel -> Int-> Int-> Int-> Int-> Int-> Int
-> ByteString
encode (r,g,b) bitsPerPixel redMax greenMax blueMax redShift
greenShift blueShift = runPut $ do
	case bitsPerPixel of
		Bpp8	-> putWord8 z8
		Bpp16	-> putWord16be z16
		Bpp32	-> putWord32be z32


More information about the Haskell-Cafe mailing list