[Haskell-cafe] convert a list of booleans into Word*

Henning Thielemann lemming at henning-thielemann.de
Wed Sep 30 20:07:12 EDT 2009


On Wed, 30 Sep 2009, Jochem Berndsen wrote:

> Bulat Ziganshin wrote:
>> Hello Paul,
>>
>> Wednesday, September 30, 2009, 1:18:03 PM, you wrote:
>>
>>> 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.
>>
>> sum . zipWith (*) (map (2^) [0..])
>
> I'd turn this into
>> sum . zipWith (*) (iterate (2*) 1)
> , but it's probably not very important.

Or

sum . zipWith (*) (iterate (flip shiftL 1) 1) . map fromEnum

in order to make the bitset nature more explicit.


More information about the Haskell-Cafe mailing list