Go to the previous, next section.

The  mapcar Function

 mapcar is a function that calls its first argument with each element of its second argument, in turn. The second argument must be a sequence.

For example,

(mapcar '1+ '(2 4 6))
     @result{} (3 5 7)

The function  1+ which adds one to its argument, is executed on each element of the list, and a new list is returned.

Contrast this with  apply , which applies its first argument to all the remaining. (See section Readying a Graph, for a explanation of  apply .)

In the definition of  one-fiftieth , the first argument is the anonymous function:

(lambda (arg) (/ arg 50))

and the second argument is  full-range , which will be bound to  list-for-graph .

The whole expression looks like this:

(mapcar '(lambda (arg) (/ arg 50)) full-range))

See section 'Mapping Functions' in The GNU Emacs Lisp Reference Manual, for more about  mapcar .

Using the  one-fiftieth function, we can generate a list in which each element is one-fiftieth the size of the corresponding element in  list-for-graph .

(setq fiftieth-list-for-graph
      (one-fiftieth list-for-graph))

The resulting list looks like this:

(10 20 19 15 11 9 6 5 4 3 3 2 2 
1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 4)

This we are almost ready to print! (We also notice the loss of information: many of the higher ranges are 0, meaning that fewer than 50 defuns had that many words or symbols--but not necessarily meaning that none had that many words or symbols.)

Go to the previous, next section.