【问题标题】:How to set conditions in a Haskell List Comprehension [closed]如何在 Haskell 列表理解中设置条件 [关闭]
【发布时间】:2017-10-14 15:26:38
【问题描述】:

我正在尝试使用以下条件生成所有大于 0 的数字的列表:

  • 所有元素都是奇数
  • 所有元素除以 7 没有余数
  • 所有元素都将槽 9 除以余数 3

例如[21,147,273,399,...]

我试过了:[x | x <- [1..] , odd x, x / 2 == 0, ...(在这里我遇到了问题)

【问题讨论】:

  • 你查过教程吗?这可能在任何理解教程中都有介绍。
  • 我投票结束这个问题,因为没有明确的努力或尝试。 StackOverflow 最好被视为对明确错误的帮助,而不是从头开始编写代码的服务或替代教程。
  • 对不起托马斯。我已经尝试过我之前的尝试,但是系统给出了消息:“这篇文章不符合我们的质量标准”。
  • 如果您不知道mod 的存在,您也可以使用列表理解自己编写代码! mod n d == 0 === last [n, n-d..0] == ?? 所以[x | x <- [1..] , odd x, x % 2 == 0] === [x | x <- [1..] , odd x, last [n, n-d..0]==??] === [x | x <- [1..] , odd x, y <- [n, n-d..0], y==??]
  • 这里我遇到了问题。不完全是一个有用的问题描述。阅读minimal reproducible example

标签: haskell conditional-statements list-comprehension mod


【解决方案1】:

只是为了让你开始部分回答

[x | x <- [1..], odd x, mod x 7==?, ??? ]

[21,147,273,399,525,651,777,903,1029,1155...]

没有比这更简单的了,只需将您的口头描述翻译成代码,完全一对一......

【讨论】:

  • 嗨 Karakfa,谢谢您的建议。 [x | x
  • @MNazar 如果遇到您提到的问题,为什么不包括它们?与询问完整的解决方案相比,了解您正在努力解决的问题有很大的不同。如果我看到类似您的尝试以及 ghc 在未来问题中产生的错误,我将很乐意提供帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-08
相关资源
最近更新 更多