[lua]实现一个js.bind玩玩
添加时间:2013-5-20 点击量:
今天微博上有人发一个帖子,可以用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.(arg, v) end
for _,v in pairs(local_arg) do table.(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
所有随风而逝的都属于昨天的,所有历经风雨留下来的才是面向未来的。—— 玛格丽特·米切尔 《飘》
今天微博上有人发一个帖子,可以用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.(arg, v) end
for _,v in pairs(local_arg) do table.(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
所有随风而逝的都属于昨天的,所有历经风雨留下来的才是面向未来的。—— 玛格丽特·米切尔 《飘》