gpt4 book ai didi

Haskell:是否有更好的方法来使用相同的 RHS 编写 case 语句?

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

示例:

data A =
A B D
| Aa B C
| Ag B X X
| Ae B R Q
| Ax X

getB a = case a of
(A b _) -> b
(Aa b _) -> b
(Ag b _ _) -> b
(Ae b _ _) -> b
(Ax _) -> somethingElse

在 Haskell 中,给定一个数据类型,其中许多构造函数具有相同的参数类型,是否有更好的方法来返回该参数。或者是否有更好的方法来编写上面所示的 case 语句以减少重复?

最佳答案

机器学习中提供的一个名为“或模式”的功能对此有很大帮助。这样的功能是requested五年前就制定了 GHC,但似乎没有人承担起具体细节并实际实现的任务。然而,有一个package提供了一种使用 Template Haskell 执行类似操作的方法,如 Or-patterns in Haskell 中所述。

关于Haskell:是否有更好的方法来使用相同的 RHS 编写 case 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28247138/

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