Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function lambda(str) {
- var idx = str.indexOf(":");
- var args = str.substring(0,idx).split(",");
- var code = str.substring(idx+1);
- return function () {
- for(var i=0; i< arguments.length; i++) {
- eval("var " + args[i] + " = " + arguments[i]);
- }
- return eval(code);
- };
- }
- // basic usage
- var multiplier = lambda("x: x*2");
- alert(multiplier(10));
- // execute the function when it returns.
- var done = lambda("x,y: Math.pow(x,y)")(12,2);
- alert(done);
- // adding context, using this and call()
- var withThis = lambda(": this+2");
- alert(withThis.call(10));
- // An empty function returns undefined
- var return_undefined = lambda("");
- alert(return_undefined());
- // Creating a null function
- var return_null = lambda(": null");
- alert(return_null());
Add Comment
Please, Sign In to add comment