[Haskell-cafe] Mixed Fraction data type

Galaxy Being borgauf at gmail.com
Wed Sep 15 14:35:35 UTC 2021


Guess I was just wondering what deep lore was behind choosing Word8 for the
whole number instead of an Integer. Right, Fraction 5 1 2, but what's up
with "mixedBit" and Word8? BTW, how might that constraint numerator <
denominator be handled if setting up MIxedFraction for real use?

On Tue, Sep 14, 2021 at 11:13 PM Bob Ippolito <bob at redivi.com> wrote:

> From context it's only used as a more concrete example of a product type
> to show how cardinality analysis works. I would infer that the idea is that
> this type would use mixedBit for the whole number and there would be a
> constraint that numerator < denominator. Fraction 5 1 2 would be the
> canonical way to represent 5 1/2 in that scheme. Practically speaking
> there's no reason to have the mixedBit field because a pair is enough to
> represent any fraction, but if it was simplified this way then the example
> would be redundant since there's already an example of a pair type on the
> same page.
>
>
> On Tue, Sep 14, 2021 at 8:51 PM Galaxy Being <borgauf at gmail.com> wrote:
>
>> I'm looking at Sandy Maguire's _Thinking With Types_ and he's talking
>> about the cardinality of types. He introduces the product type
>>
>> data MixedFraction a = Fraction
>> { mixedBit :: Word8
>> , numerator :: a
>> , denominator :: a
>> }
>>
>> How is this a type for holding mixed fractions such as 5-1/2?
>>
>>>> Lawrence Bottorff
>> Grand Marais, MN, USA
>> borgauf at gmail.com
>> _______________________________________________
>> Haskell-Cafe mailing list
>> To (un)subscribe, modify options or view archives go to:
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
>> Only members subscribed via the mailman list are allowed to post.
>
>

-- 
⨽
Lawrence Bottorff
Grand Marais, MN, USA
borgauf at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20210915/11e715a2/attachment.html>


More information about the Haskell-Cafe mailing list