gpt4 book ai didi

Haskell 模式匹配对称情况

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

假设我有一个像这样的 haskell 表达式:

foo (Nothing, Just a) = bar a
foo (Just a, Nothing) = bar a

是否有任何 haskell 语法可以折叠这些情况,以便我可以匹配任一模式并指定 bar a 作为两者的响应?或者这是我能得到的最简洁的吗?

最佳答案

如果您的代码比示例更复杂,您可能需要使用 Alternative 执行类似的操作Maybe 的实例和 PatternGuards扩展(Haskell2010 的一部分)。

{-# LANGUAGE PatternGuards #-}
import Control.Applicative

foo (x, y) | Just a <- y <|> x = bar a

如果您不熟悉,<|>选择最左边的Just如果有一个并返回 Nothing否则,会导致模式保护失败。

关于Haskell 模式匹配对称情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5968941/

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