gpt4 book ai didi

parsing - Haskell 中 read 函数的大小写匹配

转载 作者:行者123 更新时间:2023-12-02 01:40:24 25 4
gpt4 key购买 nike

我想知道如何检查 Haskell 中读取函数的成功或失败(导致 Prelude.read: no parse)。就我而言,我在格式化记录结构的代码中运行“(read formatted::Int)”,其中字段可能是字符串形式的单个 Int,但也可能包含其他内容。我只想将我的函数应用于读取返回 Int 的字段。谢谢。

最佳答案

您应该考虑 Text.Read 中的 readMaybe。一旦值在 Maybe monad 中返回,您就可以使用 case 来决定要做什么。

import Text.Read

add1 :: String -> Maybe Int
add1 str = case intval of
Just x -> Just (x + 1)
Nothing -> Nothing

where
intval = readMaybe str


main = do
print $ add1 "7"
print $ add1 "7.0"

如果你想更冒险一点,既然数据在 Maybe monad 中,我们可以将 Maybe 视为仿函数并使用应用仿函数来处理它们。

关于parsing - Haskell 中 read 函数的大小写匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71678825/

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