私は関数を書いていますが、適切な解決策を見つけることができません。私はこの方法を修正することができます。'it'の使用に起因する(分数a0)のインスタンスがありません
findLoot val [] = 0
findLoot val ((x:y:[]):xs) | val == 0 = 0.0
| val < y = ((val*x)/y)
| val > y = ((div val y)*x) + (findLoot (mod val y) xs)
エラーを
interactive:33:1:
No instance for (Fractional a0) arising from a use of ‘it’
The type variable ‘a0’ is ambiguous
Note: there are several potential instances:
instance HasResolution a => Fractional (Fixed a)
-- Defined in ‘Data.Fixed’
instance Integral a => Fractional (Ratio a)
-- Defined in ‘GHC.Real’
instance Fractional Double -- Defined in ‘GHC.Float’
...plus one other
In the first argument of ‘print’, namely ‘it’
In a stmt of an interactive GHCi command: print it
入力セットが
Input 1:-
val = 50
((x:y:[]):xs) = [[120, 30], [100,50],[60, 20]]
Output 1:-
180.0000
Input 2:-
val = 10
((x:y:[]):xs) = [[500,30]]
Output 2:-
166.6667
あなたの数字のタイプを判断しようとしますが、決めることはできません。 – Bergi
@Bergiはこれを修正する方法がありますか?私は適切な解決策を考えることができません。 –
明示的な型を追加する 'findLoot :: Fractional a => a - > [a] - > a' – Bergi