gpt4 book ai didi

haskell - 类型类定义中类型的解构(Haskell)

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

我不确定标题是否足够具有描述性,但我在 Haskell 方面不是很有经验。我想为两参数类型构造函数创建一个类型类,这取决于构造函数被参数化的类型,比如

class MyTypeclass (ctor a b) where
funct :: (ctor a b) -> a

(假设 ctor :: * -> * -> *a :: *b :: * )并且,假设我有
data Pair a b = Pair a b

能够做类似的事情
instance MyTypeclass (Pair a b) where
funct :: Pair a b -> a
funct (Pair x _) = x

没有多个参数类型类是否可能(因为它太强大了——我只想解构我的类型类参数化的类型)?

最佳答案

是的,您可以使用采用更高种类的所谓“构造函数类”:

class C ctor where
funct :: ctor a b -> a

instance C Pair where
funct (Pair x _) = x

instance C (,) where
funct = fst -- (a,b) -> a

关于haskell - 类型类定义中类型的解构(Haskell),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17491173/

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