[Haskell-cafe] How i use GHC.Word.Word8 wit Int ?

Johannes Laire johannes.laire at gmail.com
Tue May 19 22:32:58 EDT 2009


On Wed, May 20, 2009 at 3:40 AM, z_axis at 163.com <z_axis at 163.com> wrote:
> 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!

Word8 is an instance of Num, so you could use
Data.List.genericLength, which has the type:

genericLength :: Num i => [b] -> i

http://haskell.org/ghc/docs/latest/html/libraries/base/Data-List.html#26

-- 
Johannes Laire


More information about the Haskell-Cafe mailing list