अंतिम मैं हाकेल में इसमें केवल एक बार सूची की लंबाई को दोहराते हुए की संपत्ति होनी चाहिए। यहां एक विकल्प छोटा और शायद बेहतर है क्योंकि सात्वीक ने बताया कि अक्सर पुनरावर्तन ऑपरेटरों का उपयोग करना बेहतर होता है, फिर स्पष्ट पुनरावृत्ति। <पूर्व> इसके साथ ही विल नेस की टिप्पणी को भी ध्यान दें कि जो चीज़ों को सुव्यवस्थित बनाता है: n एक सूची
रिवर्स (लेफ्ट एन (रिवर्स एक्सएस)) का उपयोग कर सकते हैं, लेकिन यह बहुत अच्छा कोड नहीं है (यह कुछ भी लौटने से पहले स्मृति में पूरी सूची रखता है, और परिणाम मूल सूची से साझा नहीं किया जाता है)।
lastR फ़ंक्शन कैसे लागू कर सकता हूं?
ड्रॉप n और zipLeftover के लिए n - 1 के लिए एन।
zipLeftover :: [a] - & gt; [ए] - & gt; [ए] ज़िप लिफ्टवोवर [] [] = [] ज़िप लोफ्टवोस्ट एक्सएस [] = एक्सएस ज़िप लोफ्टवेयर [] वाईएस = वाईएस ज़िप लोफ्टवायर (एक्स: एक्सएस) (वाई: वाईएस) = ज़िप लिफ्टवायर एक्सएस वाईएसएफ़ेडएन :: इंट - & gt; [ए] - & gt; [ए] अंतिम एन एन एक्स = ज़िप लाफ्टर (ड्रॉप एन एक्सएस) xs
ले लोफ्टोवर :: [ए] - & gt; टी - & gt; [ए] ले लोफ्टवोवर [] _ = [] लेफ्टोवर (x: xss) _ = xss lastN ':: इंट - & gt; [ए] - & gt; [ए] अंतिम एन 'एन एक्सएस = गुड़' ले लोफ्टवोवर एक्सएस (ड्रॉप एन एक्सएस)
ले लाफ्तोवर बस है: <पूर्व>
ले लोफ्टवोवर == कॉन्स्ट ड्रॉप 1
lastN ':: int - & gt; [ए] - & gt; [ए] अंतिम एन 'एन एक्सएस = गुड़' (कॉन्स्ट। 1 ड्रॉप) एक्स (ड्रॉप एन एक्स) - या - आखिरी एन 'एन एक्सएस = फोल्ड' (कॉन्स्ट। 1 ड्रॉप 1) & lt; * & gt; ड्रॉप n
No comments:
Post a Comment