https://blog.bitsrc.io/common-javascript-interview-question-create-a-function-that-returns-curried-version-of-a-function-192bcac8c55a