嘿所以我正在努力学习haskell并且我在编写一个程序时遇到麻烦,该程序要求我从终端中的用户收集Int。我怎么做这个我尝试过这样的事情
import Data.Char (digitToInt)
getArguments :: IO Int
getArguments =
do putStrLn "Enter the number of arguments you want to have"
arguments <- getChar
return (digitToInt arguments)
main :: IO()
main = do
putStrLn "Welcome to Random Argument Generator"
let x = getArguments
print x+1
但这不起作用plz help!
答案 0 :(得分:6)
将let x = getArguments
替换为x <- getArguments
getArguments
的类型签名是(正确):: IO Int
,这意味着Int
被包裹了#{1}}在IO monad中,这意味着你必须使用val <- func
语法来解包它。
如果 getArguments
是纯函数(:: Int
),则let语法就是正确的。