An Introduction to Functional Programming in JavaScript