एक एर्लांग सूची समझ को कार्यान्वित करें जो सूची से दो तत्व लेता है और सूचियों की एक नई सूची बनाता है।एरलांग: एरलांग सूची समझ को कैसे कार्यान्वित करें?
मैं इस कोड
pair([], Acc) -> lists:reverse(Acc);
pair(L, Acc0) ->
[ A, B | T ] = L,
Acc = [ [A, B] | Acc0 ],
pair(T, Acc).
जो ठीक काम करता है है:
7> l:pair(lists:seq(1,6), []).
[[1,2],[3,4],[5,6]]
लेकिन ऐसा लगता है जैसे मैं एक सूची समझ के रूप में इस लागू करने के लिए सक्षम होना चाहिए। मेरे Erlang-fu इसके साथ आने के लिए बहुत कमजोर है।
कोई सुझाव?
धन्यवाद
यह एरलांग मंत्र का पालन करता है "इसे क्रैश करें", उदा। मामले के लिए '[ए]'। – Tilman
@ टिलमैन हां, फ़ंक्शन ** परिभाषित ** तत्वों के जोड़े लेने के लिए है, इसलिए यदि सूची में तत्वों की एक विषम संख्या है तो यह एक त्रुटि है। आप हमेशा निश्चित रूप से परिभाषित कर सकते हैं कि उस मामले में क्या हो रहा है और इसके बाद इसे संभाल लें। – rvirding