gpt4 book ai didi

haskell - 如何创建 ADT 的拆箱实例?

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

我很难找到适用于如何使我的数据类型未装箱以用于未装箱矢量的良好资源。我将如何制作数据类型

data Color = Yellow | Red | Green | Blue | Empty deriving (Show, Eq)

是拆箱的一个实例?

编辑:经过一番探索,似乎通过强制某些函数中的参数严格,我可以说服 GHC 自动将它们拆箱。如果这适用于我的情况?我怎么知道哪些参数要严格?

最佳答案

您可以使用 vector-th-unbox包为您派生实例。您只需要提供与一些现有的Unbox 之间的转换功能。类型:

colorToWord8 :: Color -> Word8
colorToWord8 = ...

word8ToColor :: Word8 -> Color
word8ToColor = ...

derivingUnbox "Color"
[t| Color -> Word8 |]
colorToWord8
word8ToColor

关于haskell - 如何创建 ADT 的拆箱实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13600049/

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