Mar*_*ick 5 dictionary haskell types list instance
我有不同的数据类型,我已经定义,我想让它们都成为一个类的实例.是否可以在其上创建类型列表和映射实例,而不必单独声明它们?
我的意思是这样的:
data Type1 = ...
data Type2 = ...
map (instance ClassName) [Type1, Type2]
Run Code Online (Sandbox Code Playgroud)
Rei*_*ton 10
实际上你可以用类似的东西
{-# 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|]])
Run Code Online (Sandbox Code Playgroud)
但是除非你真的需要它们自动生成(例如,类型列表可能根据某些东西而有所不同),否则它会让我感觉像是大规模的过度杀伤力.
| 归档时间: |
|
| 查看次数: |
185 次 |
| 最近记录: |