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