Finding all unique pairings in a list

Comparing all pairs of items is a common idiom in data analysis. This recipe will cover how to create a list of element pairs out of a list of elements. For example, if there is a list [1, 2, 3], we will create a list of every possible pair-ups [(1, 2), (1, 3), (2, 3)].

Notice that the order of pairing does not matter. We will create a list of unique tuple pairs so that we can compare each item to every other item in the list.

How it works…

Create a new file, which we call Main.hs, and insert the code explained in the following steps:

  1. Import the following packages:
    import Data.List (tails, nub, sort)
  2. Construct all unique pairs from a list of items as follows:
    pairs xs = [(x, y) | (x:ys) <- tails (nub xs), y <- ys] ...

Get Haskell Data Analysis Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.