1

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

[(0,1), (0,2), (0,3), (1,2), (0,4), (1,3), (0,5) .... ] 等等等等。

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

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

但我不知道如何从这里继续下去。谢谢你。:)

4

1 回答 1

5

感谢您的提示。我设法这样做:

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

take 10 increasePairs 返回正确的输出。:)

于 2013-03-27T13:12:39.150 回答