3 ms·
Haskell even has sugar for this via list comprehensions: Prelude> let pairs = "ABCD" Prelude> [(x, y) | x <- pairs, y <- pairs, x < y] [('A','B'),(
by jamwt 15y ago
Haskell even has sugar for this via list comprehensions:
Prelude> let pairs = "ABCD"
Prelude> [(x, y) | x <- pairs, y <- pairs, x < y]
[('A','B'),('A','C'),('A','D'),('B','C'),('B','D'),('C','D')]
- dpatru 15y agoThis generates the Cartesian product and filters. (x,y) where both x and y are drawn from the original list. The previous solution only generates pairs (x, y) where y is drawn from elements after x.