{"ScriptPreparationCode":null,"TestCases":[{"Name":"function","Code":"var curry = function(fn) {\r\n var prevArgs = Array.prototype.slice.call(arguments, 1);\r\n return fn.length \u003C= prevArgs.length\r\n ? fn(...prevArgs)\r\n : function() {\r\n var nextArgs = Array.prototype.slice.call(arguments);\r\n return curry(fn, ...prevArgs, ...nextArgs);\r\n };\r\n };\r\nfunction volume(l, w, h) {\r\n return l * w * h;\r\n }\r\nvar curring = curry(volume);\r\ncurring(1)(2)(3);\r\ncurring(1, 2, 3);\r\ncurring(1, 3)(2);\r\ncurring(1)()(2)(3);","IsDeferred":false},{"Name":"arrow","Code":"var curry = (fn, ...args) =\u003E\r\n fn.length \u003C= args.length\r\n ? fn(...args)\r\n : (...more) =\u003E curry(fn, ...args, ...more);\r\nfunction volume(l, w, h) {\r\n return l * w * h;\r\n }\r\nvar curring = curry(volume);\r\ncurring(1)(2)(3);\r\ncurring(1, 2, 3);\r\ncurring(1, 3)(2);\r\ncurring(1)()(2)(3);","IsDeferred":false}]}