{"id":207204,"date":"2020-11-24T20:49:30","date_gmt":"2020-11-24T12:49:30","guid":{"rendered":"http:\/\/4563.org\/?p=207204"},"modified":"2020-11-24T20:49:30","modified_gmt":"2020-11-24T12:49:30","slug":"%e8%bf%99%e6%a0%b7%e7%9a%84%e6%9f%af%e9%87%8c%e5%8c%96%e5%ae%9e%e7%8e%b0%e4%b8%ba%e4%bb%80%e4%b9%88%e4%b8%8d-work","status":"publish","type":"post","link":"http:\/\/4563.org\/?p=207204","title":{"rendered":"\u8fd9\u6837\u7684\u67ef\u91cc\u5316\u5b9e\u73b0\u4e3a\u4ec0\u4e48\u4e0d Work?"},"content":{"rendered":"<div>\n<div>\n<div>\n<h1>                  \u8fd9\u6837\u7684\u67ef\u91cc\u5316\u5b9e\u73b0\u4e3a\u4ec0\u4e48\u4e0d Work?               <\/h1>\n<p> <\/p>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : vision1900 <\/span>  <span><i><\/i> 2<\/span> <\/div>\n<div> <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div isfirst=\"1\"> <\/p>\n<p>\u4e0b\u5348\u5c1d\u8bd5\u81ea\u5df1\u5b9e\u73b0\u67ef\u91cc\u5316\uff0c\u5199\u51fa\u4e86\u5982\u4e0b\u4ee3\u7801\uff1a<\/p>\n<p>\u8fd9\u662f\u4ee3\u7801\u622a\u56fe\uff1a http:\/\/realrz.com\/curry_not_working.png<\/p>\n<pre><code>function curry(f, params_count) {   if ([0, 1].includes(params_count)) return f;   const params = [];   let result_fuction = f(...params);   for (let i = 0; i &lt; params_count; i++) {     result_function = function (val) {       params.push(val);       return result_function;     };   }   return result_function; }  function add1(a, b) { return a + b } function add2(a, b, c) { return a + b + c }  const curriedAdd1 = curry(add1, 2); const curriedAdd2 = curry(add2, 3);  curriedAdd1(1)(2); \/\/ \u6ca1\u6709\u5f97\u5230 3 curriedAdd2(1)(2)(3); \/\/ \u6ca1\u6709\u5f97\u5230 6 <\/code><\/pre>\n<\/p><\/div>\n<div> <b>\u5927\u4f6c\u6709\u8a71\u8aaa<\/b> (<span>14<\/span>)        <\/div>\n<div> <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<ul>\n<li data-pid=\"4324734\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : noe132 <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             \u4f60\u8fd9\u8fde\u9012\u5f52\u90fd\u6ca1\u6709\u770b\u89c1\u3002\u3002\u3002\u611f\u89c9\u5dee\u7684\u6709\u70b9\u8fdc\u554a<br \/>\u5efa\u8bae\u53c2\u8003 https:\/\/stackoverflow.com\/questions\/27996544\/how-to-correctly-curry-a-function-in-javascript                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"4324735\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : noe132 <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             \u800c\u4e14\u4e2d\u95f4\u7684 for \u5faa\u73af\u7b49\u4e8e\u5728\u505a\u65e0\u7528\u529f\u3002\u8fd0\u884c n \u6b21\u548c\u8fd0\u884c\u4e00\u6b21\uff0c\u5f97\u5230\u7684 result_function \u90fd\u662f\u4e00\u6837\u7684\u4e1c\u897f                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"4324736\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : linoder <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             \u56e0\u4e3a You \u5199\u7684 CASE \u6709 BUG                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"4324737\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u4e3b<\/span> <span>\u8cc7\u6df1\u5927\u4f6c : vision1900 <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             @noe132 \u6211\u7684\u610f\u56fe\u662f\u628a\u53c2\u6570\u4e2a\u6570 map \u5230\u51fd\u6570\u7684\u9636\uff0c\u9012\u5f52 + Function.prototype.apply \u662f\u53ef\u4ee5\u5b9e\u73b0: https:\/\/javascript.info\/currying-partials#advanced-curry-implementation<br \/>\u4f46\u6211\u7684\u95ee\u9898\u662f\u624b\u52a8\u63d0\u9636\u4e3a\u4ec0\u4e48\u4e0d\u884c                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"4324738\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : linvaux <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             @linoder \u8bf4\u7684\u5f88 right                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"4324739\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : dantegg <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             @linoder you \u7684\u56de\u590d very \u9177                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"4324740\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : noe132 <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             1. \u4f60 curry \u51fa\u6765\u7684\u51fd\u6570\u5171\u4eab\u4e00\u4e2a\u95ed\u5305<br \/>a = curry(3, fn)<\/p>\n<p>b = a(1)<br \/>c = a(1)<\/p>\n<p>b \u548c c \u8c03\u7528\u4f1a\u76f8\u4e92\u5f71\u54cd\uff0c\u5f97\u5230\u7684\u5c31\u4e0d\u662f\u7eaf\u51fd\u6570<\/p>\n<p>2. \u4f60\u7684\u5224\u65ad\u81f3\u5c11\u8981\u653e\u5230 result_function \u91cc\u9762\u624d\u6709\u7528\u3002\u4f60\u6bcf\u6b21\u6267\u884c\u53ea\u662f push \u4e86\u4e00\u4e2a\u503c\u7136\u540e\u53c8\u8fd4\u56de result_function \u672c\u8eab\uff0c\u4f60\u6267\u884c 1w \u6b21\u4e5f\u662f\u8fd9\u6837\uff0c\u8fd8\u4f1a\u9020\u6210\u5185\u5b58\u6cc4\u6f0f<\/p>\n<p>3. \u4f60\u8fd9\u4e2a for \u5faa\u73af\u4e0d\u77e5\u9053\u5728\u5e72\u4ec0\u4e48                                                            <\/p><\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"4324741\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : ksedz <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             function curry(f, params_count) {<br \/> if ([0, 1].includes(params_count)) return f;<br \/> let result_function = f;<br \/> for (let i = 1; i &lt; params_count; i++) {<br \/> const last_result_function = result_function<br \/> result_function = function(&#8230;params) {<br \/> return function(&#8230;params2) {<br \/> params2 = params2.concat(params)<br \/> return last_result_function(&#8230;params2)<br \/> }<br \/> }<br \/> }<br \/> return result_function;<br \/>}<\/p>\n<p>function add1(a, b) { return a + b }<br \/>function add2(a, b, c) { return a + b + c }<\/p>\n<p>const curriedAdd1 = curry(add1, 2);<br \/>const curriedAdd2 = curry(add2, 3);<\/p>\n<p>console.log(curriedAdd1(1)(2)); \/\/ 3<br \/>console.log(curriedAdd1(3)(2)); \/\/ 5<br \/>const t = curriedAdd1(1)<br \/>console.log(t(2)); \/\/ 3<br \/>console.log(t(3)); \/\/ 4<br \/>console.log(curriedAdd2(1)(2)(3)); \/\/ 6                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"4324742\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : ksedz <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             \u683c\u5f0f\u4e71\u6389\u4e86\uff0c\u770b\u8fd9\u91cc<br \/>https:\/\/gist.github.com\/shapled\/989e778e75335d959d011c51547b6725 <button onclick=\"lazyGist(this)\">\u00a0\u663e\u793a Gist \u4ee3\u7801\u00a0<\/button> <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"4324743\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u4e3b<\/span> <span>\u8cc7\u6df1\u5927\u4f6c : vision1900 <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             @ksedz \u8c22\u8c22\uff0c\u6211\u518d\u7814\u7a76\u4e0b                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"4324744\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : pwn <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             \u8bd5\u7740\u5199\u4e86\u4e00\u4e0b<br \/>&#8212;-<br \/>function curry(f, params_count) {<br \/> let count = params_count;<br \/> let params = [];<br \/> let closure = function(&#8230;param) {<br \/> params = params.concat(param)<br \/> if (params.length &gt;= count) {<br \/> let sum = 0;<br \/> for (let i = 0; i &lt; count; i++)<br \/> sum += params[i];<br \/> params = params.slice(count)<br \/> return sum;<br \/> } else {<br \/> return closure<br \/> }<br \/> }<br \/> return closure;<br \/>}                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"4324745\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : pwn <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             \u4e3a\u4ec0\u4e48\u524d\u9762\u7a7a\u683c\u4f1a\u81ea\u52a8\u53bb\u6389\u3002\u3002\u8bd5\u8bd5\u8fd9\u6837<br \/>\/\/ function curry(f, params_count) {<br \/>\/\/ let count = params_count;<br \/>\/\/ let params = [];<br \/>\/\/ let closure = function(&#8230;param) {<br \/>\/\/ params = params.concat(param)<br \/>\/\/ if (params.length &gt;= count) {<br \/>\/\/ let sum = 0;<br \/>\/\/ for (let i = 0; i &lt; count; i++)<br \/>\/\/ sum += params[i];<br \/>\/\/ params = params.slice(count)<br \/>\/\/ return sum;<br \/>\/\/ } else {<br \/>\/\/  return closure<br \/>\/\/ }<br \/>\/\/ }<br \/>\/\/ return closure;<br \/>\/\/ }                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"4324746\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : pwn <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             \u7f62\u4e86\u7f62\u4e86\uff0c\u7ed9\u4e2a\u94fe\u63a5 https:\/\/paste.ubuntu.com\/p\/q49C9WcYJZ\/                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li data-pid=\"4324747\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : pwn <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             \u5199\u9519\u4e86\uff0c\u4e0d\u597d\u610f\u601d\uff0c\u518d\u6765\uff1a https:\/\/paste.ubuntu.com\/p\/hr2J2dgzp2\/                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li>\n","protected":false},"excerpt":{"rendered":"<p>\u8fd9\u6837\u7684\u67ef\u91cc\u5316\u5b9e\u73b0\u4e3a\u4ec0\u4e48\u4e0d Work&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[],"tags":[],"_links":{"self":[{"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/posts\/207204"}],"collection":[{"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/4563.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=207204"}],"version-history":[{"count":0,"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/posts\/207204\/revisions"}],"wp:attachment":[{"href":"http:\/\/4563.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=207204"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/4563.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=207204"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/4563.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=207204"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}