संतोषजनक मैं रूप में डेटा है एक पाठ फ़ाइल में एक सूची विभाजितप्रत्येक तत्व एक विधेय (स्काला)
val input = io.Source.fromFile("filename.txt").getLines().toList
मैं 1)
के साथ शुरू उप सूचियों में डाउन सूची को तोड़ने के लिए चाहते हैं, 2)
आदि
मैं ले कर आए हैं:
val subLists =
input.foldRight(List(List[String]())) {
(x, acc) =>
if (x.matches("""[0-9]+\)""")) List() :: (x :: acc.head) :: acc.tail
else (x :: acc.head) :: acc.tail
}.tail
क्या यह अधिक आसानी से प्राप्त किया जा सकता है? क्या वास्तव में अच्छा होगा यदि प्रत्येक तत्व पर एक संग्रह को विभाजित करने के लिए एक अंतर्निहित विधि थी जो एक अनुमान (संकेत, संकेत, पुस्तकालय डिजाइनर :)) को संतुष्ट करता है।
इस सवाल पर एक नज़र और स्वीकार किए जाते हैं जवाब ले लो द्वारा बस परिणाम मिलता है। कॉम/प्रश्न/6800737/कैसे-टू-ग्रुप-ए-वेरिएबल-लम्बाई-दोहराने-अनुक्रम-इन-स्कैला – mpilquist
इस जवाब में इटरेटर का उपयोग करना संभव है, लेकिन यह मामला अधिक जटिल है क्योंकि प्रत्येक शीर्षक अलग है, इसलिए आप ' डी शीर्षक के लिए एक दूसरी Iterator/सूची की जरूरत है, और यह सुरुचिपूर्ण होने बंद हो जाता है। रिकर्सन बहुत साफ दिखता है। –