Functional Programming - evan-401-advanced-javascript/seattle-javascript-401d31 GitHub Wiki

Functional programming is the idea that code base's should be kept as simple as possible while still accomplishing their purpose. The way functional programming handles accomplishes this simplicity is through abstraction. Abstraction is the use of higher level functions to write your programs in a more direct way. The downside is that this requires the readers of your codebase to have an understanding of the's higher functions.

An example of abstraction would be making a peanut butter sandwich. I could explain in minute detail the mechanics of opening a jar of peanut butter. How you should grasp the lid in one hand and the jar in the other while applying counter-clockwise torque. By using abstraction I could shorten my description by saying "open the peanut butter" and then it would be up to you to either remember how to do that or to look it up.