繁体   English   中英

我可以在haskell中列出类型列表吗?

[英]can I make a list of types in haskell?

我有不同的数据类型,我已经定义,我想让它们都成为一个类的实例。 是否可以在其上创建类型列表和映射实例,而不必单独声明它们?

我的意思是这样的:

data Type1 = ...
data Type2 = ...

map (instance ClassName) [Type1, Type2]

实际上你可以用类似的东西

{-# LANGUAGE TemplateHaskell #-}

module T where

class C a

data X = X
data Y = Y
data Z = Z

$(fmap concat $ mapM (\t -> [d|instance C $t|]) [[t|X|], [t|Y|], [t|Z|]])

但是除非你真的需要它们自动生成(例如,类型列表可能根据某些东西而有所不同),否则它会让我感觉像是大规模的过度杀伤力。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM