Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Parsing 在Haskell(Trifecta)中解析三位数的最简洁方法_Parsing_Haskell_Refactoring_Trifecta - Fatal编程技术网

Parsing 在Haskell(Trifecta)中解析三位数的最简洁方法

Parsing 在Haskell(Trifecta)中解析三位数的最简洁方法,parsing,haskell,refactoring,trifecta,Parsing,Haskell,Refactoring,Trifecta,将三个连续数字解析为字符串的惯用方法是什么 以下工作正常,但不具有规模: threeDigits :: Parser Int threeDigits = do d1 <- digit d2 <- digit d3 <- digit return (digitToInt d1 * 100 + digitToInt d2 * 10 + digitToInt d3) 三位数::解析器Int 三位数=do d1使用 digits::Int->Parse

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

以下工作正常,但不具有规模:

threeDigits :: Parser Int
threeDigits = do
    d1 <- digit
    d2 <- digit
    d3 <- digit
    return (digitToInt d1 * 100 + digitToInt d2 * 10 + digitToInt d3)
三位数::解析器Int
三位数=do
d1使用

digits::Int->Parser Int
数字n=读取计数n个数字

是您的
解析器
键入
ReadP
的同义词?也称为
replicItem::Applicative m=>Int->ma->m[a]
@4castle它是
Text.Trifecta.Parser
;我已经更新了这个问题。如果我理解正确,它与
ReadP
无关,但有一个非常相似的API。由于
count
来自
Applicative
,我认为同样的方法应该适用于
ReadP
digits :: Int -> Parser Int
digits n = read <$> count n digit