import Data.List
s = "123456789"
fibs = 1 : scanl (+) 1 fibs
res (x:xs) = if (sort. show $ div x (10^(floor(m) - 8))) == s then x else res xs
where m = logBase 10 x
コードは、フィックスナンバーの最初の9桁をピックし、それらが変数sと一致するかどうかを確認します。私はさまざまな分野でIntegralから挿入することでこれを修正しようとしましたが、特にエラーの原因が関数 'res'を参照するため、動作させるようには見えません。正しい方向に私を指差してください。'res'を使用して(Floating Integer)のインスタンスがありません
私が手にエラーがある:それは、このようにFloating
、Integral
、RealFrac
とShow
あるタイプが必要です
res :: (Floating r, Integral r, RealFrac r, Show r) => [r] -> r
:res
が型を持っているので、あなたが直接res fib
を呼び出すことはできません
No instance for (Floating Integer) arising from a use of ‘res’
In the expression: res fibs
In an equation for ‘it’: it = res fibs
コンパイルエラーも印刷してください。 –
コンパイラエラー: – Amateur
'res'を使用しているためにインスタンスがありません(浮動整数) 式中:式の中で:it = res fibs – Amateur