我已经在Haskell中尝试了许多不同的方法来完成此操作,但我一生无法解决这个问题。
我想从用户那里获得一个名称列表,如果我知道列表的长度(假设为n),我想提示用户n次并在第i次询问第i个项目。
到目前为止,我有这个:
ojit_pre
但我不断出错。
非常感谢您的帮助!
最佳答案
您的代码有问题input
的返回类型为IO String
,因此您不能将其附加到列表中。
同样,getinput (a+1) b
的返回类型是IO [String]
,而不仅仅是[String]
。
在这里,我已更正您的代码
getinput a b | a == b = return []
| otherwise = do
i <- getLine
rest <- getinput (a+1) b
return (i:rest)
更好,更仓促的方式
getinput2 n = sequence $ replicate n getLine