Summarizing Tennis Scores
In the previous chapter, we were able to generate some summary data from the tennis scores, using filter
. If we wanted to know how many matches a particular player had won, we could filter out that player's victories and call count
. While this approach works well when we are only interested in one player, it becomes cumbersome if we want more complete data. For example, if we needed to know the number of matches played or won by each of the players in the dataset, we would have to filter, for each query, the entire history of all the matches. The map
and filter
functions are extremely useful in many situations, but reducing a large collection down into a more compact report is not what they are best for.
Let's suppose that for each player, we need to know the number of matches played, won, and lost. We'll walk through two different ways to solve the problem in Clojure, the first using reduce
and the second using group-by
, one of Clojure&apos...