【发布时间】:2021-03-06 01:56:42
【问题描述】:
我正在尝试使用 fromIntegral 将整数转换为实小数类型。这个想法是有一个辅助方法,以便稍后用于比较 Fraction 的两个实例(它们是否相同)。
我已经阅读了一些相关的文档:
fromIntegral :: (Integral a, Num b) => a -> b
realToFrac :: (Real a, Fractional b) => a -> b
我遇到问题的地方是采用这个概念并实现辅助方法,该方法采用带有分数(分子和分母)的 Num 数据类型并返回我认为是实分数类型值。到目前为止,这是我能够做到的:
data Num = Fraction {numerator :: Integer, denominator :: Integer}
helper :: Num -> Fractional
helper (Fraction num denom) = realToFrac(num/denom)
【问题讨论】:
-
您可能不想调用您自己的数据类型
Num,因为这是 Haskell 库中主要数值 类(接口)的名称。跨度> -
除非您将此作为练习,否则请注意,基本库中已经有一个
Rational类型,它定义了相等性并允许转换为任何Fractional类型(包括Double)通过fromRational.
标签: haskell