gpt4 book ai didi

haskell - Haskell 中的多态数据族

转载 作者:行者123 更新时间:2023-12-02 10:52:58 25 4
gpt4 key购买 nike

我想定义一个支持显式未实例化情况多态性的数据系列:

data family Foo a

-- handles some specific case
data instance Foo Int = CreateInt Int Int String

-- handles all other cases
data instance Foo bar = CreateBar bar

这可能吗?

最佳答案

使用封闭类型族。 Unfortunately ,这需要一个额外的新类型包装器:

newtype Foo a = CreateFoo {getFoo :: Foo' a}

type family Foo' a where
Foo' Int = IntFoo
Foo' bar = Barbar bar

data IntFoo = CreateInt Int Int String
data Barbar bar = CreateBar bar

关于haskell - Haskell 中的多态数据族,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49876407/

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