Hacker News new | ask | show | jobs
by anonymoushn 4696 days ago

  function curry(f,x)
    return function(...)
      return f(x, ...)
    end
  end
  
  function reduce(f,t,r)
    r = r or t[1]
    for i=2,#t do
      r = f(r,t[i])
    end
    return r
  end 
  
  addf = function(a,b) return a+b end
  
  sum = curry(reduce, addf)
  
  t = {"1", "2", "12"}

  print(reduce(addf, t)) -- 15

  print(sum(t)) -- 15

  res = 0
  for i=1,#t do
    res = res + t[i]
  end
  print(res) -- 15

  res = 0
  for k,v in ipairs(t) do
    res = res + v
  end
  print(res) -- 15