From imperative to functional JavaScript
medium.com