JSFiddle - React, Tailwind, and code Playground

JavaScript

const curry = (fn) => {
  const args = []
  const f = arg => args.push(arg) && f
  f.valueOf = () => args.reduce((acc, arg) => {
    if (typeof arg !== 'number') {
      window.open('https://www.youtube.com/watch?v=_VxQrbNPxO4')
      throw Error('?!')
    }
    return fn.call(fn, acc, arg)
  }, 0)
  return f
}

const sum = curry((x, y) => x + y)

console.log(+sum(4)(6)(10)) // как избавится от этого уёбищного унарного оператора?!