में नेस्टेड सूचियों की एक सूची फ़्लैट करें मैं एरलांग प्रोग्रामिंग में अभ्यास पर काम कर रहा हूं।Erlang
सवाल
एक समारोह है कि, नेस्टेड सूचियों की एक सूची दी गई, एक फ्लैट सूची प्रदान करेगा लिखें है।
उदाहरण:
flatten([[1,[2,[3],[]]], [[[4]]], [5,6]]) ⇒ [1,2,3,4,5,6].
सुझाव:
concatenate
का उपयोगflatten
हल करने के लिए।
और यहाँ मेरी concatenate
समारोह
%% concatenate([[1,2,3], [], [4, five]]) ⇒ [1,2,3,4,five].
concatenate([X|Xs]) -> concat(X, Xs, []).
concat([X|Xs], T, L) -> concat(Xs, T, [X|L]);
concat([], [X|Xs], L) -> concat(X, Xs, L);
concat([], [], L) -> reverse(L).
मैं वास्तव में flatten
लागू करने के लिए एक सुंदर तरीका जानना चाहते है। मैंने इस अभ्यास को हल करने में घंटों बिताए हैं।
अद्यतन: मैं सबसे महत्वपूर्ण शर्त भूल जाता हूं। क्या इस समस्या को केवल रिकर्सन और पैटर्न मिलान से हल करना संभव है?
हाँ, यह संभव है! – rvirding