September 2016
Intermediate to advanced
408 pages
9h 18m
English
The smallest piece of data is a bit (0 or 1), which is isomorphic to Bool (True or False). When you need just one bit, a Bool should be your choice. If you need a few bits, then a tuple of Bools will fit the purpose when performance is not critical. A [Bool] is sometimes convenient, but should only be chosen for convenience in some situations.
For high-performance binary data, you could define your own data type with strict Bool fields. But this has an important caveat, namely that Bool is not a primitive but an algebraic data type:
data Bool = False | True
The consequence is that you cannot unpack a Bool similar to how you could an Int or Double. In Haskell, Bool values will always be represented by pointers. Fortunately ...
Read now
Unlock full access