आम तौर पर, foldl
foldl'
या foldr
के पक्ष में से बचा जाता है। Real World Haskell का हवाला देते हुए: भले ही वह एकमुश्त असफल नहीं है, यह अनावश्यक रूप से अक्षम हो जाएगा:फ़ोल्डल के संदर्भ में कुछ प्रीलूड फ़ंक्शंस क्यों परिभाषित किए गए हैं?
कारण foldl की thunking व्यवहार करने के लिए, यह असली कार्यक्रमों में इस समारोह से बचने के लिए बुद्धिमान है। इसके बजाय, डेटा आयात करें। सूची और फ़ोल्डल का उपयोग करें।
फिर भी कुछ प्रस्तावना कार्यों यह (जैसे (\\)
और unionBy
) के रूप में परिभाषित कर रहे हैं। ऐसा क्यों है? क्या यह इन कार्यों के लिए बहुत सख्तता पेश नहीं कर रहा है?
नोट: जीएचसी में सख्तता विश्लेषण का अर्थ है कि 'फोल्ड' बेहतर तरीके से सोचने से बेहतर काम करता है। – singpolyma
कड़ाई से बोलते हुए, '(\\) 'और' UnionBy' प्रस्ताव में नहीं हैं। – sdcvvc