0

我想知道是否可以返回包含使用 Num 类型的变量构造的 Double 变量的结果。举个例子:

dist :: (Graph g n e, Ord n, Num e) => g -> n -> n -> [Double]
dist graph n1 n2 = loop (nodes graph) where
    loop []            = []
    loop nodes = [n'] ++ loop (tail nodes) where
        n' = if (getDist (head nodes)) == 0) then 1/0 else (getDist (head nodes)) + 1  --1/0 = infinity

我正在考虑一个类似于 toFractional 的函数,以始终从 if 语句中提供双精度

4

1 回答 1

7

该类Num包含许多无法合理转换为 的内容Double,例如复数和其他内容。如果您将其缩小到Real班级,则可以使用realToFrac.

于 2012-11-28T18:05:43.190 回答