残余引数の総和を求める

const sum = (...rp) => {
    const reducer = (previousValue, currentValue) => {
      console.log(`PREV: ${previousValue}`, `CUR: ${currentValue}`)
      return previousValue + currentValue
    }

    console.log(rp.reduce(reducer))
  }

  sum(1, 2, 3)
const ar = [1,2,3]

// アロー関数を利用した場合
const sum = ar.reduce((previous, current) => previous + current)

// アロー関数を利用しない場合
const sum = ar.reduce(function(previous, current){
    return previous + current
})

// コールバッグ関数を渡した場合
const callbackFunc = (previous, current) => previous + current

const sum = ar.reduce(callbackFunc)

console.log(sum) // 6
function sum(...args) {
  let result = 0;
  for (let value of args) {
     result += value;
  }
  return result;
}

console.log(sum(1, 2, 3, 4));