Functional Programming in JavaScript: How to improve your JavaScript progra