【发布时间】:2016-03-01 12:24:00
【问题描述】:
我正在尝试逐行读取标准输入,并使用foo :: String -> Int 类型的函数处理每一行。如果我们不知道要读取的行数,或者考虑到第一行提供了行数,有什么方法可以做到这一点?
我尝试过的 很多东西都会产生无意义的错误,例如“解析器错误”。 例如
main = do {
getLine <- getContents;
let result = show (foo getLine);
putStrLn (foo result);
}
编辑 奇怪,但这不会打印 a 的长度
main = do {
a <- getContents;
putStrLn (show (length a));
}
但是,这确实打印了 5。
main = do {
a <- getContents;
putStrLn (show 5);
}
【问题讨论】:
-
getLine是haskell 中的内置函数,考虑将变量命名为其他名称吗?另外do符号不需要{}
标签: haskell