我是Haskell的新手,也是一般的函数式编程.另外,我知道上面的问题非常相似,但我无法在任何地方找到解决问题的方法.以下代码用于查找数字输入的因子:
fc4 :: Double -> IO ()
check :: Double -> Double -> IO ()
fc4 a = check a (sqrt a)
check a b = if rem a b == 0 then print (b, div a b) else print () >> if b > 1 then check a (b-1) else putStrLn ("Done.")
Run Code Online (Sandbox Code Playgroud)
我尝试使用每种可能的组合切换Double到Integer和返回,但每个都失败并出现相同的错误:
No instance for (Integral Double) arising from a use of 'rem'
Run Code Online (Sandbox Code Playgroud)
我也试过明确地使用fromIntegral和 …
haskell ×1