如果我有两个数据结构
data Tri = Tri {a :: Int, b :: Int , c :: Int} deriving Show
data Quad = Quad {w :: Int, x :: Int, y :: Int, z :: Int} deriving Show
如何创建由这两个组成的另一个数据结构?即:
data Shape = Tri | Quad derivng Show
答案 0 :(得分:10)
您必须给数据构造函数命名:
data Shape = ShapeTri { shapeTri :: Tri }
| ShapeQuad { shapeQuad :: Quad }
deriving Show
答案 1 :(得分:5)
@talex的答案是正确的。这里有一些变体(主要是语法不同)。
没有记录语法:
data Shape = ShapeTri Tri | ShapeQuad Quad
deriving Show
结合使用Shape,Tri和Quad:
data Shape = Tri {a :: Int, b :: Int , c :: Int}
| Quad {w :: Int, x :: Int, y :: Int, z :: Int}
deriving Show