[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