gpt4 book ai didi

parsing - 如何在 Haskell 中解析 float (Parsec.Combinator)

转载 作者:行者123 更新时间:2023-12-04 01:13:53 25 4
gpt4 key购买 nike

我正在尝试使用 Parsec.Combinator 库解析 haskell 中的字符串。但我找不到如何解析浮点值。我的函数只读取整数(带数字,但数字只解析整数值)。

parsePoint :: Parser Point
parsePoint = do
string "Point"
x <- many1 digit
char ','
y <- many1 digit
return $ (Point (read x) (read y))
我搜索了 Text.Parsec.Number 库,但没有找到如何使用的示例。
谢谢阅读

最佳答案

有几个Parser s 可以解析浮点数,例如 floating :: (Floating f, Stream s m Char) => ParsecT s u m f . Parser只是 Parsec 特殊情况的别名,取决于您使用的模块。例如 type Parser = Parsec Text () .
如果您的 Point因此接受例如两个 Float s,您可以使用 parsec3-numbers package并与:

import Text.Parsec.Char(char, string)
import Text.Parsec.Number(floating)
import Text.Parsec.Text(Parser)

data Point = Point Float Float

parsePoint :: Parser Point
parsePoint = do
string "Point "
x <- floating
char ','
y <- floating
return (Point x y)
然后可以解析,在本例中为字符串 "Point 3.14,2.718"

关于parsing - 如何在 Haskell 中解析 float (Parsec.Combinator),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63984130/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com