我得到了以下的, 什么样的类型检查:
p_int = liftA read (many (char ) *> many1 digit <* many (char ))
现在,正如函数名称所暗示的,我希望它能给我一个中间点。 但如果我这样做:
p_int = liftA read (many (char ) *> many1 digit <* many (char )) :: Int
我得到这个类型错误 :
Couldn t match expected type `Int with actual type `f0 b0
In the return type of a call of `liftA
In the expression:
liftA read (many (char ) *> many1 digit <* many (char )) ::
Int
In an equation for `p_int :
p_int
= liftA read (many (char ) *> many1 digit <* many (char )) ::
Int
是否有一种更简单、更清洁的方法来分析整数,而整数可能有白空格?还是一种方法来解决这个问题?
归根结底,我希望这成为以下内容的一部分:
betaLine = string "BETA " *> p_int <*> p_int <*> p_int <*>
p_int <*> p_parallel <*> p_exposure <* eol
用来分析看起来像这样的线条 :
BETA 6 11 5 24 -1 oiiio
因此,我最终可以叫一个BetaPair 建构器,它需要这些价值(有些是Int,有些是其他类型,如[勘探]和平行)
(如果你好奇的话, 这是用于文件格式的解析器, 除其他外, 代表有氢的乙型树脂配对的蛋白质。 我无法控制文件格式! )