我想12 34 56
使用 Haskell 将输入读取为三个整数。
对于单个整数,可以使用myInteger <- readLn
. 但是对于这种情况,我没有找到任何解决方案,除了首先读取一行,然后用 , 替换所有空格,
(使用类似:
spaceToCommas str =
let repl ' ' = ','
repl c = c
in map repl str
) 然后打电话read '[' ++ str ++ ']'
感觉很hackish。此外,它不允许我说我想读取三个整数,它会尝试从标准输入读取任意数量的整数。
一定有更好的方法。
请注意,我想要一个不依赖外部包的解决方案。使用例如 Parsec 当然很棒,但是这个简单的示例不需要使用成熟的 Parser Combinator 框架,对吗?