在Haskell中输入两个枚举字段

代币

我有一个表示方向的类型,它有一个轴和一个方向:

data Dir = DirX | DirY | DirZ | DirW deriving (Show, Eq)
data Sign = Pos | Neg deriving (Show, Eq)
newtype Direction = Direction (Dir, Sign) deriving (Show, Eq)

看起来有点复杂。我不需要SignDir也可以是不同的类型,我只想对它们的构造函数进行模式匹配。那么,有没有更好的方法来定义这种类型呢?

所以我想做的是

data Direction = Direction (DirX | DirY | DirZ | DirW) (Pos | Neg) deriving (Show, Eq)

因为我做类似的事情\(Direction _ s) -> if s == Pos then ... else ...,但我从不使用DirSignDirection

我想我不是第一个提出这个问题的人,但是我真的不知道如何用Google搜索这个问题。

丹尼尔·瓦格纳

不,没有更好的方法。

...然后,就个人而言,我发现这种方式已经非常完美了。因此,也许这不是一个可怕的负担。

当然,有一些方法可以定义您可能仍然感兴趣的完全不同的类型。例如,我过去沿这些线使用了方向类型,效果很好:

data Direction = Direction { x, y, z, w :: Int }
aboutFace (Direction x y z w) = Direction (-x) (-y) (-z) (-w)
-- e is a traditional name from linear algebra for an axis-aligned unit vector
ex = Direction 1 0 0 0
ey = Direction 0 1 0 0
ez = Direction 0 0 1 0
ew = Direction 0 0 0 1

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在React中链接两个输入字段

来自分类Dev

行jquery mobile中的两个输入字段

来自分类Dev

计算JavaScript中的两个输入字段值

来自分类Dev

行jquery mobile中的两个输入字段

来自分类Dev

比较两个输入字段中的值

来自分类Dev

带两个按钮的输入字段

来自分类Dev

如何关联两个输入字段?

来自分类Dev

如何计算两个输入字段并在输入元素中显示总和

来自分类Dev

将值两次加载到两个输入字段中

来自分类Dev

如何使两个输入字段为必需,并在Codeigniter中接受一个的值?

来自分类Dev

如何在两个输入字段中只设置一个 NULLABLE

来自分类Dev

具有非动态输入字段的动态输入字段插入到两个 mysql 表中不起作用

来自分类Dev

Haskell IO,在同一行中获取两个输入并进行验证

来自分类Dev

如何在材料UI中的文本字段中使两个输入装饰彼此相邻

来自分类Dev

两个具有相似属性且无法在watir中输入值的文本字段

来自分类Dev

我如何从单选按钮下的两个输入字段中获取数据

来自分类Dev

使用javascript验证文本字段中的输入(需要为两个值之一)

来自分类Dev

枚举两个集合

来自分类Dev

如何将按钮的输入值添加到jQuery中的两个不同的输入字段中

来自分类Dev

我想使用JQuery克隆两个输入字段

来自分类Dev

Bootstrap在输入字段旁边放置两个glyphicons

来自分类Dev

Javascript / html:两个输入范围字段的天平

来自分类Dev

两个具有键入功能的输入字段

来自分类Dev

自动填充或合并两个输入字段

来自分类Dev

在两个输入字段之间获得最大

来自分类Dev

如何在更新时验证两个输入字段

来自分类Dev

如何实现两个不同类中需要的枚举?

来自分类Dev

跳过枚举中的前两个元素-python

来自分类Dev

插入红宝石中的两个枚举的最佳方法?

Related 相关文章

  1. 1

    在React中链接两个输入字段

  2. 2

    行jquery mobile中的两个输入字段

  3. 3

    计算JavaScript中的两个输入字段值

  4. 4

    行jquery mobile中的两个输入字段

  5. 5

    比较两个输入字段中的值

  6. 6

    带两个按钮的输入字段

  7. 7

    如何关联两个输入字段?

  8. 8

    如何计算两个输入字段并在输入元素中显示总和

  9. 9

    将值两次加载到两个输入字段中

  10. 10

    如何使两个输入字段为必需,并在Codeigniter中接受一个的值?

  11. 11

    如何在两个输入字段中只设置一个 NULLABLE

  12. 12

    具有非动态输入字段的动态输入字段插入到两个 mysql 表中不起作用

  13. 13

    Haskell IO,在同一行中获取两个输入并进行验证

  14. 14

    如何在材料UI中的文本字段中使两个输入装饰彼此相邻

  15. 15

    两个具有相似属性且无法在watir中输入值的文本字段

  16. 16

    我如何从单选按钮下的两个输入字段中获取数据

  17. 17

    使用javascript验证文本字段中的输入(需要为两个值之一)

  18. 18

    枚举两个集合

  19. 19

    如何将按钮的输入值添加到jQuery中的两个不同的输入字段中

  20. 20

    我想使用JQuery克隆两个输入字段

  21. 21

    Bootstrap在输入字段旁边放置两个glyphicons

  22. 22

    Javascript / html:两个输入范围字段的天平

  23. 23

    两个具有键入功能的输入字段

  24. 24

    自动填充或合并两个输入字段

  25. 25

    在两个输入字段之间获得最大

  26. 26

    如何在更新时验证两个输入字段

  27. 27

    如何实现两个不同类中需要的枚举?

  28. 28

    跳过枚举中的前两个元素-python

  29. 29

    插入红宝石中的两个枚举的最佳方法?

热门标签

归档