0
我想要生成一個列表,其中包含從Haskell中的數字列表中選擇兩個的所有唯一方法。所以從列表[1,2,3]
我想[[1,2],[2,3],[1,3]]
。順序並不重要,所以我想避免生成[1,2]
和[2,1]
兩個例子。從列表中生成唯一組合的列表
我目前的解決辦法是:
pairs :: Ord a => [a] -> [[a]]
pairs x = nub $ map sort $ map (take 2) (permutations x)
這不但是一個特別好的解決方案,它肯定有一些嚴重的性能問題。有沒有簡單而有效的解決方案?
非常好,謝謝。這就是我以後的事情。 – JimmyCo