Kub*_*ski 1 haskell type-conversion
我正在Haskell中编写一个简单的程序,它允许用户输入2的幂的指数
power a = 2^a
main = do
number <- readLn
let x = (read number :: Int)
power x
Run Code Online (Sandbox Code Playgroud)
我想出我需要转换String为Int但仍然会出现以下错误:No instance for (Num (IO t0)) arising from a use of 'power'
我如何使其工作?
当你写出类型时它会有所帮助.
power :: (Num a, Integral b) => b -> a
power a = 2^a
main :: IO ()
main = do
number <- getLine
let x = read number :: Int
power x
Run Code Online (Sandbox Code Playgroud)
但让我们来看看这些东西真的会回归.power看起来不错,但是main试图回归Num a,而不是回归IO ().main并不意味着返回值 - 你应该对它们做些什么.也许你想要print结果?print :: Show a => a -> IO ()
main :: IO ()
main = do
number <- getLine
let x = read number :: Int
print $ power x
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
69 次 |
| 最近记录: |