gpt4 book ai didi

haskell - 在枚举上创建函数

转载 作者:行者123 更新时间:2023-12-03 23:23:46 24 4
gpt4 key购买 nike

我刚开始学习 Haskell。我想我已经掌握了基础知识,但我想确保我实际上也在强制自己从功能上思考。

data Dir = Right | Left | Front | Back | Up | Down deriving (Show, Eq, Enum)
inv Right = Left
inv Front = Back
inv Up = Down

无论如何,我想做的事情是创建一个函数来映射每个“Dir”和它的对立面/inv。我知道我可以轻松地再继续这 3 行,但我不禁想知道是否有更好的方法。我尝试添加:
inv a = b where inv b = a

但显然你不能这样做。所以我的问题是:有没有一种方法可以生成其余的逆函数,或者有更好的方法来创建这个函数?

非常感谢。

最佳答案

如果 Up 之间的配对和 Down等等是一个重要的特征,那么也许这些知识应该反射(reflect)在类型中。

data Axis = UpDown | LeftRight | FrontBack
data Sign = Positive | Negative
data Dir = Dir Axis Sign
inv现在很容易。

关于haskell - 在枚举上创建函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6247111/

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