Use eat
to simplify calling curried functions.
You can rewrite a(b)(c)
as eat(a, b, c)
.
eat = (curries...)->
curries = curries[0] if Array.isArray curries[0]
curries.reduce (f, v)-> f v
const eat = (...curries) => (Array.isArray(curries[0]) ? curries[0] : curries).reduce((f, v) => f(v));