1

将三个连续数字解析为字符串的惯用方式是什么?

以下工作,但不能扩展:

threeDigits :: Parser Int
threeDigits = do
    d1 <- digit
    d2 <- digit
    d3 <- digit
    return (digitToInt d1 * 100 + digitToInt d2 * 10 + digitToInt d3)

更一般地说,这如何扩展到 N 个数字?

4

1 回答 1

1

使用count.

digits :: Int -> Parser Int
digits n = read <$> count n digit
于 2017-12-16T07:39:20.290 回答