【问题标题】:How to generate a list with own data type in haskell如何在haskell中生成具有自己数据类型的列表
【发布时间】:2019-02-19 23:59:47
【问题描述】:

我正在尝试在 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

【问题讨论】:

  • SO 不是代码编写服务。您先尝试,然后向我们展示您的尝试并解释为什么您认为自己无法取得进展。无论下一步是什么,我们都会帮助您,然后您再次推动进步。
  • 关于构建列表的Haskell report 部分可能有助于您进一步研究。
  • @DanielWagner 我已经修改了我的代码并尝试了...您现在可以检查一下吗?谢谢!
  • @user3637052 鉴于此问题已获得多次赞成票,最好将此改进版本作为一个新问题提出。现在这是一个更好的问题,但请记住这一点。
  • @AJFarmar 我不同意。近距离投票应该是为了鼓励编辑,而将一个糟糕的、封闭的问题摆在周围而不是改进它对任何人都没有任何好处。即使它实际上已经关闭,这也是重新开放的目的。

标签: list function haskell recursion


【解决方案1】:

你得到这个错误是因为Cell 是 - 实际上 - 不是一个值构造函数。只需使用普通的Empty 代替(注意不要写Bool TrueBool False - 你只需写TrueFalse)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-17
    • 2020-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-15
    相关资源
    最近更新 更多