Hacker News new | ask | show | jobs
by sheng 4696 days ago
would you mind to state some of the so many ways of summing up all the numbers in a list of strings for python? And give a counter example for lua?
1 comments

Off the top of my head:

    list = ["1", "2", "3"]
    sum1 = sum(int(num) for num in list)
    sum2 = reduce(map(list, int), operator.add)
    sum3 = 0
    for num in list:
        sum3 += int(num)
Lua only has the third of these three options. I don't really consider this a particularly compelling advantage as a user.

  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
No, but I think a lot of python users consider this a particularly compelling advantage as readers.

At least, I know I sure spend a lot more time reading code than I do writing code; so I appreciate any language that tries to optimize for that use-case and helps me minimize my cognitive overhead.

The second would work, if the functions were defined correctly.