We say that defun is called for effect because we are more interested in its side effect of establishing the definition of a new function rather than the value it returns. In formal logic and programming language theory this is called a lambda list , a term that comes from Alonzo Church's Lambda Calculus. This is a easy and convenient way to document your new function, giving an idea of what it does in the form of a text. The fourth and any additional arguments are the Lisp forms whose evaluation represent the body of the function, i.e. the program itself. This function can only compute harmonic series because is multiplying the fundamental frequency by integer numbers.
Lets expand the functionality of our function even more.
Note that we have transformed our function from a for effect called function to a for value called function, i.e. now we are interested in the returned value instead of the side effect of printing. Imagine you want to create a function that will take a series of note arguments of an arbitrary length and return you a list with the frequencies corresponding to those pitches. Suppose we want to add another functionallity to our harmonic-series, to give you the possibility of having the name of the notes corresponding to the partials of the series instead of their frequency. The last line of the form introduces the function mapcar , that takes a function and a list as arguments. The function note must get floating point numbers as arguments, that is why we must map the function float through the out-list before mapping the function note .