Functional Programming in JavaScript (How to improve your JavaScript programs using functional techniques)