在Haskell中,可以使用递归函数来逐行存储用户输入的整数列表。下面是一个示例代码:
import Control.Monad
readIntList :: IO [Int]
readIntList = do
line <- getLine
if null line
then return []
else do
rest <- readIntList
return $ read line : rest
main :: IO ()
main = do
putStrLn "请输入整数列表,每行一个数字(输入空行结束):"
intList <- readIntList
putStrLn "用户输入的整数列表为:"
forM_ intList print
这段代码中,readIntList
函数使用了递归来读取用户输入的整数列表。它首先通过 getLine
函数获取用户输入的一行内容,并将其存储在 line
变量中。然后,它检查 line
是否为空,如果为空则返回一个空的整数列表,表示输入结束;否则,它将 line
解析为整数,并递归调用 readIntList
函数来读取剩余的整数列表。最后,main
函数调用 readIntList
来获取用户输入的整数列表,并使用 forM_
函数逐行打印出来。
这种方法可以逐行存储用户输入的整数列表,并且可以处理任意长度的列表。在实际应用中,可以根据需要对输入进行验证和处理,例如检查输入是否为合法整数、处理异常情况等。
腾讯云相关产品和产品介绍链接地址:
请注意,以上仅为腾讯云的一些相关产品,其他云计算品牌商也提供类似的产品和服务。
领取专属 10元无门槛券
手把手带您无忧上云