jbe@9: require "seqlua_c_example" -- defines functions "printcsv" and "printthree" jbe@0: jbe@0: function alphabet() jbe@0: local letter = nil jbe@0: return function() jbe@0: if letter == nil then jbe@0: letter = "a" jbe@0: elseif letter == "z" then jbe@0: return nil jbe@0: else jbe@0: letter = string.char(string.byte(letter) + 1) jbe@0: end jbe@0: return letter jbe@0: end jbe@0: end jbe@0: jbe@0: printcsv{"a", "b", "c"} jbe@0: -- prints: jbe@0: -- a,b,c jbe@0: jbe@0: printcsv(alphabet()) jbe@0: -- prints: jbe@0: -- a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z jbe@0: jbe@8: printthree(alphabet()) jbe@8: -- prints: jbe@8: -- a jbe@8: -- b jbe@8: -- c jbe@8: jbe@8: printthree(setmetatable({v="x"}, {__call=function(t) return t.v end})) jbe@8: -- prints: jbe@8: -- x jbe@8: -- x jbe@8: -- x jbe@8: