This module exports an add closure that takes any number of arguments and/or parameters
Examples:
add()
add(1)
add(1,2)
add(1)(2)
add(1,2)(3,4)
Each given number is added together and the result is returned.
The trick is the use of Symbol.toPrimitive, which allows the returned function to be turned into a number.
Wrap the function call in Number() to print the resulting number. Example: Number(add(1)(2,3)(4)(-100)(123))
This stack overflow comment was helpful in showing how to spread arguments inside function and suggesting to bind 0 to the function instead of handling value inside function https://stackoverflow.com/a/34776276/2316606