我搜索过,但是我找不到有帮助的东西,所以我发布了一个新问题。我正在学习Haskell,这是一个我不理解的练习。
我想创建一个素数元组的无限列表,每个元组的和是一个更高的偶数,从2开始。所以输出应该是例如:[(0,2), (2,2), (3,3), (3,5)...
我想只使用列表推导,没有递归。问题是每个元组的总和必须更高。我定义了自己的最初函数prim
,并开始像:
goldbachList :: [(Int, Int)]
goldbachList = [(a,b) | b <- [1 ..], a <- [0 .. b], prim a || a == 0, prim b, a+b >= 2, even (a+b)]
但很明显,这会创建一个包含比我想要的更多元组的无限列表。是否有可能包含条件,每个元组必须与列表理解中的前一个相比得到下一个偶数?
答案 0 :(得分:2)
由于这听起来像一个有趣的编程练习,我会给出一个提示,而不是一个完整的解决方案。这是一个可以帮助您入门的模板:[findPair n | n <- [2,4..]]
。您还可以使用列表推导实现findPair
(加head
- 这不是递归的 - 如果您认为猜想是真的!)。