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

ifステートメントから常にdoubleを提供するtoFractionalのような関数を考えています

4

1 に答える 1

7

クラスには、複素数やその他のものなど、Numへの適切な変換を持たない多くのものが含まれています。Double代わりにクラスに絞り込む場合はReal、 を使用できますrealToFrac

于 2012-11-28T18:05:43.190 に答える