[Haskell-cafe] How i use GHC.Word.Word8 wit Int ?
Bernie Pope
florbitous at gmail.com
Tue May 19 22:16:29 EDT 2009
2009/5/20 z_axis at 163.com <z_axis at 163.com>:
> Hi, friends
>
> rollDice :: Word8 -> IO Word8
> rollDice n = do
> bracket (openFile "/dev/random" ReadMode) (hClose)
> (\hd -> do v <- fmap B.unpack (B.hGet hd 1)
> let v1 = Data.List.head v
> return $ (v1 `mod` n) + 1)
> .....
> blueIdx <- rollDice $ length [1..33]
>
> Couldn't match expected type `Word8' against inferred type `Int'
> In the second argument of `($)', namely `length yesBlue
>
> I know "length [1..33]" is Int not Word8, but Word8 is enough here.
> Sincerely!
You can use fromIntegral to convert Integral types to other numeric types:
fromIntegral :: (Integral a, Num b) => a -> b
Prelude Data.Word> (fromIntegral (3 :: Int)) :: Word8
3
Watch out for overflow.
Cheers,
Bernie.
More information about the Haskell-Cafe
mailing list