Appendix C

I was informed by my editor that I should explain a particular word I used on pages 221, 446, and 523 of this book. To clarify, I am not going to duplicate any of what I wrote on those pages; it is your task as a reader to refer to those pages before, during, and/or after reading this section. It was my understanding that a literate person should be capable of this feat without an author providing explicit instructions. However, after a (rather long) conversation with said editor, it appears the need persists. If you did not have any trouble while reading those pages, consider this section a supplement to Chapter 12, Humans Are Bad At Instructions.

I shall continue under the assumption you are able to follow my references as explained above. The clarification I wish to make revolves around the word “recursion” and how it applies to experiences in my life. Each of the offending pages makes use of this word for a simple purpose: to remove passages that would duplicate information which had already been provided. I do this as a courtesy to both you and my editor, though he seems to disagree.

To fully illustrate a particular example, I will provide further context for use of the word “recursion” on page 446. In this passage I use the word “recursively”, which, if you are not capable of understanding the relationship between nouns and adjectives, is another form of the word “recursion.” Before using this word I provide a vivid description of my first love, a woman named Mandy. I then ask the you to reread that section eight times to learn how the rest of my relationships bloomed, flourished, wilted, and died. You are instructed to iterate through each of my mother’s positive qualities (pages 25-29) and each of my father’s negative qualities (pages 30-52) to construct an image of my romantic partners. In this way I hope to spare you the arduous task of reading what is essentially the same sad story eight times.

An astute reader will have noticed that my explanation does not, in fact, describe a “recursive” process; I have merely told you to find and replace some key phrases. This is no different from preparing a recipe or filling out a form. Before I explain how recursion is involved, however, I feel I must provide a simpler example of recursion for the less-than-astute reader. While I have avoided including code in the rest of my autobiography, I am afraid it is necessary in this case. Besides, what type of person is reading a book about me who does not have some interest in programming? My editor refuses to answer this question.

Let us look at a very simple recursive function. This piece of code is not written for any particular language, and the lines are numbered for easy reference.

 

1| function Fib(number):
2|     if number < 2:
3|        return number
4|    return Fib(number - 1) + Fib(number - 2)

The first line of this function simply states that we are declaring a function (a reusable list of instructions) which we will reference by the name Fib and which will operate on value called number. Each other line describes the “body” of the function, i.e. the instructions of how number should be used. Lines 2 and 3 tell Fib what to do if number is less two: simply return number without changing it in any way. The word “return” is used to tell the function to stop running and output whatever follows on the line.

The final line of Fib is what makes this example interesting. We will only encounter this line if number is at least two. In this case, we should evaluate Fib two more times: once using the value that is one less than number and another time using the value that is two less than number. We should add these results and return this sum as our output. The following table describes how Fib would operate on a few examples.

Value of number Calculations Output
0 0 0
1 1 1
2 1 + 0 1
3 (1 + 0) + 1 2
4 ((1 + 0) + 1) + (1 + 0) 3
5 (((1 + 0) + 1) + (1 + 0)) + ((1 + 0) + 1) 5

My editor was upset when he saw I included code in this appendix, but he nearly quit when I showed him that table. As repugnant as I find him, I find his opinions keep my work accessible to a broader audience. Regardless, I believe this information is necessary for the average reader to understand my thought process. If you cannot read this table, you cannot comprehend the intricacies of my 73 years of life.

To understand my lesson, please examine the middle column above. We see the same calculations are run repeatedly but with increasing complexity. This is because each step requires you solve two similar problems which have only slightly different input. Were you to evaluate Fib of one-million, you would eventually encounter the same groups of zeroes and ones we see above, just with a greater struggle along the way. You can save yourself some frustration, though, by remembering the output from your earlier work. Thus, to find Fib of six, I would recommend you look at the right column and see the answer presents itself: five plus three.

At this point in my life, I am searching for ways to avoid running through the same problems that I have already solved. The function for love is recursive; at each step I needed to solve a smaller problem that I had encountered with an earlier woman. But what about those earlier steps for which I never found solutions? Mandy never understood why I was incapable of telling her I loved her. I never understood, either. Karen could not get along with my father. Was I was supposed to have solved that one? I see no way to reduce this complexity as my life collapses in on itself. I am running the same calculations and producing no answers.

Now she’s gone.

Jane is gone.

I am alone, except for you, my dear readers. And my editor. That idiot.

In any case, I believe I am done with this explanation. I hope you enjoy Appendix D, in which I discuss the fine art of correcting other people’s grammar on the internet.

One thought on “Appendix C

Leave a comment