In haskell, given a list of elements, xs
, the simplest way to iterate over all pair permutations with repetitions is:
[(x,y) | x <- xs, y <- xs]
I wish to be able to do the same, but only on combinations. If x and y were comparable, I could do
[(x,y) | x <- xs, y <- xs, x > y]
But I'd prefer a solution that is more generic and more efficient (I know that asympotitic complexity will remain squared, but we can halve actual runtime complexity by avoiding the usage of a filtering condition)
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…