gpt4 book ai didi

haskell - 在 Haskell 中使用包装器的混合类型列表

转载 作者:行者123 更新时间:2023-12-02 04:08:16 25 4
gpt4 key购买 nike

有没有办法通过用另一种类型包装类型来创建混合类型列表?

举个例子,如果我有两种数据类型,CatDog ,我可以使用 Pet 之类的东西列出猫和狗的列表吗? wrapper ?我知道这可以使用代数数据类型来完成,但我还希望其他包装器可用,例如 Animal .

我想使用它的基本方法如下:

data Cat = Cat
data Dog = Dog
data Cow = Cow

data Pet a = Pet a
data Animal a = Animal a

pets = [Pet Cat, Pet Dog]
animals = [Animal Cat, Animal Dog, Animal Cow]

有办法做到这一点吗?我也在考虑是否可以使用类型类。

最佳答案

是的。你会使用这样的东西:

data Pet = ItsACat Cat | ItsADog Dog

pets = [ItsACat Cat, ItsADog Dog]

关于haskell - 在 Haskell 中使用包装器的混合类型列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38298084/

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