यह संभव नहीं है बस डिजाइन द्वारा। स्कैला की सूची अपरिवर्तनीय है, और आप मौजूदा सूची में जो कुछ भी कर सकते हैं वह मूल रूप से अपने सिर को हटा देता है (जो पूंछ पैदा करता है, दूसरे शब्दों में एक सूची जो खुद को अपरिवर्तनीय है) या एक तत्व को पूर्ववत करता है, जो एक नई अपरिवर्तनीय सूची प्रदान करता है। आप एक सूची का एक तत्व ले सकते हैं और इसे फिर से प्रस्तुत कर सकते हैं, लेकिन यह केवल एक लंबी सूची बनायेगा जहां दो तत्व एक ही उदाहरण हैं, यह चक्र नहीं बनाता है।
आपके पास दो सूचियां भी हो सकती हैं जो उनकी पूंछ का हिस्सा (या सभी) साझा करती हैं, लेकिन आप अभी भी लूप नहीं बना सकते हैं। क्योंकि एक लंबी सूची बनाने के लिए यह केवल है, तुम सब कर सकते हैं एक पहले से मौजूद सूची, जिसका अर्थ है कि एक सूची सिर में नोड्स (डिजाइन द्वारा) कर रहे हैं पुराने उदाहरणों से जोड़ें है कि पूंछ नोड्स। यह हमेशा मामला है। इससे यह चलता है कि लूप होने से एक विरोधाभास होगा।
तो संक्षिप्त उत्तर नहीं है, आप स्कैला (अपरिवर्तनीय) सूची के साथ चक्र नहीं बना सकते हैं।
एक के रूप में अलग रूप में, कारण है कि यह (के रूप में Senia के जवाब से दिखाया गया है) और Stream
रों के साथ संभव है List
रों (भले ही दोनों अपरिवर्तनीय संग्रह हैं) है कि Stream
रों एक महत्वपूर्ण घटक जोड़ने के साथ नहीं: lazyness। स्ट्रीम नोड्स आलसी रूप से निर्मित होते हैं (एक नोड मूल रूप से अंगूठे को वास्तविक नोड की सामग्री में संग्रहीत करता है), जो बाद में नोड को पहले (और अभी तक कंस्ट्रक्शन नहीं) नोड को संदर्भित करने की अनुमति देता है, इस प्रकार लूप को अनुमति देता है।
स्रोत
2013-08-14 10:11:45
यह सूची में नोड या तत्व के लिए एक वर्ग है, न कि सूची के लिए। – Teepeemm