如何在Haskell中生成具有自己的数据类型的列表

时间:2018-09-15 11:44:34

标签: list function haskell recursion

我试图在Haskell中使用自己的数据类型创建一个无限列表

data Color = Black | White       deriving (Show, Eq)
data Cell  = Empty | Stone Color deriving (Show, Eq)

makeRow :: Int -> Row
makeRow 0 = []
makeRow n = take n (repeat Cell Empty)

它给了我错误:

Data constructor not in scope: Cell

1 个答案:

答案 0 :(得分:2)

您会收到此错误,因为Cell是-实际上-不是值构造函数。只需使用普通的Empty即可(请注意,您不会写Bool TrueBool False,而只是写TrueFalse)。