gpt4 book ai didi

haskell - 深度 Haskell 递归中异常的替代方案是什么?

转载 作者:行者123 更新时间:2023-12-02 17:19:26 30 4
gpt4 key购买 nike

我正在尝试通过编写小程序来学习 Haskell...所以我目前正在为简单表达式编写一个词法分析器/解析器。 (是的,我可以使用 Alex/Happy...但我想先学习核心语言)。

我的解析器本质上是一组构建树的递归函数。在语法错误的情况下,我通常会抛出异常(即,如果我用 C# 编写),但在 Haskell 中似乎不鼓励这样做。

那么还有什么选择呢?我真的不想测试解析器的每一个位中的错误状态。我希望要么得到一个有效的节点树,要么得到一个包含详细信息的错误状态。

最佳答案

Haskell 为此提供了MaybeEither 类型。由于您想返回错误状态,Either 似乎就是您想要的。

关于haskell - 深度 Haskell 递归中异常的替代方案是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3762563/

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