从类型为Num的值构造Double变量

时间:2012-11-28 17:50:16

标签: haskell

我想知道是否可以返回包含使用类型为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语句

中提供一个double

1 个答案:

答案 0 :(得分:7)

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