我是 Haskell 的初学者,在使用 Ord 时我错过了一个概念。我正在尝试通过下面的函数从 Haskell 的列表中唯一的对
pairs:: (Ord a) => [a] -> [(a,a)]
pairs[] = []
pairs(x:xs) = [(i, j) | i <- xs, j <- xs, i > j]
因此,例如,如果我想获得 [4,3,1,2] 的唯一对,我应该获得输出 [(4,3),(4,1),(4,2),(3,1) ,(3,2),(2,1)]
但我得到的是 [(3,1),(3,2)] 。
我的问题是,为什么这会跳过列表 xs 的第一个元素?
谢谢。