Haskell生成按元素和排序的递增对

Haskell生成按元素和排序的递增对,haskell,Haskell,我是Haskell的新手,我想生成一个配对列表,如下所示: orderedPairs n = [ (x, y) | x <- [0 .. n], let y = n - x, x < y] pairStream n = (orderedPairs n) ++ (pairStream (n + 1)) increasingPairs = pairStream 0 [(0,1)、(0,2)、(0,3)、(1,2)、(0,4)、(1,3)、(0,5)…]等等 我制作了一个生成有序对的函数

我是Haskell的新手,我想生成一个配对列表,如下所示:

orderedPairs n = [ (x, y) | x <- [0 .. n], let y = n - x, x < y]
pairStream n = (orderedPairs n) ++ (pairStream (n + 1))
increasingPairs = pairStream 0
[(0,1)、(0,2)、(0,3)、(1,2)、(0,4)、(1,3)、(0,5)…]等等

我制作了一个生成有序对的函数

orderedPairs = [ (x, y) | x <- [0 .. ], y <- [1 ..], x < y]

orderedPairs=[(x,y)| x谢谢你的提示。我这样做了:

orderedPairs n = [ (x, y) | x <- [0 .. n], let y = n - x, x < y]
pairStream n = (orderedPairs n) ++ (pairStream (n + 1))
increasingPairs = pairStream 0

orderedPairs n=[(x,y)| x谢谢你的提示。我这样做了:

orderedPairs n = [ (x, y) | x <- [0 .. n], let y = n - x, x < y]
pairStream n = (orderedPairs n) ++ (pairStream (n + 1))
increasingPairs = pairStream 0

orderedPairs n=[(x,y)| x首先制作一个函数来生成特定和的对列表,然后使用它来获得整个列表。如果这不是你应该学习的作业/练习,我将很高兴地详细说明。首先制作一个函数来生成特定和的对列表,然后使用它来获得整个列表。如果它不是作业/练习y你应该从中学习,我会很高兴地详细说明。好的,这是一个非常好的开始。但是不要用
x
过滤掉一半列表,而是调整
x
[(x,n-x)的上限| x=orderedPairs
,我觉得更好。是的,看起来更好。谢谢你的提示。DOkay,这是一个非常好的开始。但是不要用
x
过滤掉一半列表,而是调整
x
[(x,n-x)| x=orderedPairs
,我觉得更好。是的,看起来更好。谢谢提示。:D