我知道read
将字符串转换为整数。如何正确使用read
并附加到theList
?
theList = []
inputList = do
inputNum <- getLine
if null inputNum
then do putStrLn "Done"
else do theList <- (read inputNum)
inputList
问题陈述是theList <- (read inputNum)
答案 0 :(得分:4)
Haskell中的值是不可变的,这意味着在声明它们之后就无法修改它们。不要认为Haskell有变量,而是将其视为具有静态值。
在这种情况下你可以做的是构建一个IO动作,它将返回所有输入值的列表:
inputList :: IO [Int]
inputList = do
inputNum <- getLine
if null inputNum
then do
putStrLn "Done"
return []
else do
rest <- inputList
let num = read inputNum
return $ num : rest
然后你可以用它作为
import Data.List
main :: IO ()
main = do
putStrLn "Enter some numbers..."
nums <- inputList
putStrLn "The numbers you entered from smallest to largest are:"
let sortedNums = sort nums
mapM_ print sortedNums
答案 1 :(得分:2)
不,您无法插入现有列表。
在Haskell列表中,列表是不可变的,您可以使用:
和++
等函数从现有列表创建新列表。