[lua]实现一个js.bind玩玩
今天微博上有人发一个帖子,可以用js来函数式编程.
比如:
function f(x, y, z) { return x + y + z; } var f1 = f.bind(null, 1); f1(2,3) === 6;
看完之后,我表我们lua也能实现这样的效果.
function bind(f,...) local args={...} return function(...) local local_arg={...} local arg = {} for _,v in pairs(args) do table.insert(arg, v) end for _,v in pairs(local_arg) do table.insert(arg,v) end return f(unpack(arg)) end end function f(x,y,z) return x+y+z end local f1 = bind(f,1) print(f1(2,3)) //will print 6
调试了好长时间......
原帖: