Node:Prepare the data, Previous:Several files recursively, Up:Words in a defun
recursive-lengths-list-many-files function returns a list
of numbers. Each number records the length of a function definition.
What we need to do now is transform this data into a list of numbers
suitable for generating a graph. The new list will tell how many
functions definitions contain less than 10 words and
symbols, how many contain between 10 and 19 words and symbols, how
many contain between 20 and 29 words and symbols, and so on.
In brief, we need to go through the lengths' list produced by the
recursive-lengths-list-many-files function and count the number
of defuns within each range of lengths, and produce a list of those
Based on what we have done before, we can readily foresee that it should not be too hard to write a function that `CDRs' down the lengths' list, looks at each element, determines which length range it is in, and increments a counter for that range.
However, before beginning to write such a function, we should consider the advantages of sorting the lengths' list first, so the numbers are ordered from smallest to largest. First, sorting will make it easier to count the numbers in each range, since two adjacent numbers will either be in the same length range or in adjacent ranges. Second, by inspecting a sorted list, we can discover the highest and lowest number, and thereby determine the largest and smallest length range that we will need.