您的位置:首页 > 编程语言 > Lua

[lua]实现一个js.bind玩玩

2013-05-20 16:37 316 查看
  今天微博上有人发一个帖子,可以用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


调试了好长时间......

原帖:

http://slid.es/gsklee/functional-programming-in-5-minutes
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: