.lua
-- How to use metamethods in Lua. list1 = {1, 2, 3} list2 = {5, 7, 9} function myAdd(listA, listB) local listSute = {} for i = 1, #listA do listSute[i] = listA[i] + listB[i] end return listSute end function mySub(listA, listB) local listSute = {} for i = 1, #listA do listSute[i] = listA[i] - listB[i] end return listSute end function myMul(listA, listB) local listSute = {} for i = 1, #listA do listSute[i] = listA[i] * listB[i] end return listSute end function myDiv(listA, listB) local listSute = {} for i = 1, #listA do listSute[i] = listA[i] / listB[i] end return listSute end setmetatable(list1, {__add = myAdd, __sub = mySub, __mul = myMul, __div = myDiv}) -------------------------------------------------- for _, v in ipairs(list1 + list2) do print(v) end for _, v in ipairs(list1 - list2) do print(v) end for _, v in ipairs(list1 * list2) do print(v) end for _, v in ipairs(list1 / list2) do print(v) end