<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
<tt>Sorry, msb rigthmost</tt><br>
<br>
<blockquote cite="mid:4AC33AD2.1060000@xs4all.nl" type="cite">
  <pre wrap="">Here's another approach for Bool lists with msb leftmost:

bitsToInt :: [Bool] -&gt; Integer
bitsToInt = foldr((.(flip shiftL 1)).(+)) 0. map (fromIntegral.fromEnum)



Hallo <a class="moz-txt-link-abbreviated" href="mailto:Paul.Brauner@loria.fr">Paul.Brauner@loria.fr</a>, je schreef op 30-09-09 11:18:
  </pre>
  <blockquote type="cite">
    <pre wrap="">Hello,

I haven't found a function in hackage or in the standard library that
takes a list of booleans (or a list of 0s and 1s, or a tuple of booleans
or 0s and 1s) and outputs a Word8 or Word32.

I have written one which seems very inefficient :

toWord8 :: [Bool] -&gt; Word8
toWord8 bs = go 0 0 bs
  where go n r []     = r
        go n r (b:bs) = go (n+1) (if b then setBit r n else clearBit r n) bs

Is there a better way to do this out there ?

(If it helps, i'm writting a toy compression algorithm, which outputs
binary as lists of booleans, and I'd like to output that in a file).

Cheers
Paul
_______________________________________________
Haskell-Cafe mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a>
<a class="moz-txt-link-freetext" href="http://www.haskell.org/mailman/listinfo/haskell-cafe">http://www.haskell.org/mailman/listinfo/haskell-cafe</a>
  
    </pre>
  </blockquote>
  <pre wrap=""><!---->
  </pre>
</blockquote>
<br>
<pre class="moz-signature" cols="80">-- 
Met vriendelijke groet,
=@@i
</pre>
</body>
</html>