【发布时间】:2012-03-12 08:15:53
【问题描述】:
我有代码:
read :: IO [Line]
read = do
line <- getLine
let count = length line
line2 <- getLine
if (length line2 /= count)
then error "too long or too short"
else read
我想要做的是,基于用户必须的第一行的长度 输入 length-1 多行,如果其中任何一行的长度不同 作为原始行,将显示错误消息。
现在我的代码只是一个无限循环,因为我无法弄清楚 如何输入长度为 1 的更多行。对此的一些指导将不胜感激。
编辑:行是字符串类型
【问题讨论】:
-
你的代码是一个无限循环的原因是因为你允许它停止的唯一方法是错误。否则它将始终跟随 if 语句的另一个分支并一次又一次地递归。