javascript - First sums, second doesn't -> why? -


  & lt;! - पहले - & gt; & LT; स्क्रिप्ट & gt; Var कुल = 0; Var newAccumulator = function () {रिटर्न फ़ंक्शन (i) {total + = i; }; } Var foldl = function (arr, putNum) {for (var i = 0; i & lt; arr.length; ++ i) {putNum (arr [i]); }} गुनाह ([1, 2, 3, 4], नया आकस्मिक ()); Document.write ("योग:" + कुल + "& lt; br / & gt;"); & Lt; / स्क्रिप्ट & gt; & Lt;! - सेकंड - & gt; & LT; स्क्रिप्ट & gt; Var कुल = 0; Var newAccumulator = फ़ंक्शन (i) {कुल + = i; } Var foldl = function (arr, putNum) {for (var i = 0; i & lt; arr.length; ++ i) {putNum (arr [i]); }} गुनाह ([1, 2, 3, 4], नया आकस्मिक ()); Document.write ("योग:" + कुल + "& lt; br / & gt;"); & Lt; / स्क्रिप्ट & gt;    

कॉल में foldl आप नया एक्सेमुलेटर फ़ंक्शन:

  गुनाह ([1, 2, 3, 4], नयाएकुम्युलेटर ());  

पहले मामले में यह एक समारोह देता है जो संक्षेप करता है:

  रिटर्न फ़ंक्शन (i) {total + = i; };  

दूसरे मामले में newAccumulator को कॉल कुछ भी वापस नहीं करता है, इसलिए foldl में कोई फ़ंक्शन नहीं है जिसे कॉल कर सकता है राशि की गणना करने के लिए।
आपको नये कोडमांड को सीधे foldl से गुजरना चाहिए, यह मूल्य नहीं है (वापस नहीं):

  foldl ([1, 2] , 3, 4], नया एजूमुलेटर);  

Comments

Popular posts from this blog

c++ - Linux and clipboard -

Visual Studio 2005: How to speed up builds when a VSMDI is open? -

booting ubuntu from usb using virtualbox -