यह मेरे वर्तमान कोड का एक उदाहरण है:क्या एरलांग में एक सूची में छुपे हुए रोउनम हैं?
DataSet = [1,2,3,4,5,6,7,8,9].
Sequence = [3,4,5,6].
ReducedDataSet = lists:foldl(fun(SeqNumber, Output) ->
Row = lists:nth(SeqNumber, DataSet),
[Row|Output]
end,
[],
Sequence
).
ReducedDataSet के रूप में समाप्त होता है [6,5,4,3] और अगर मैं इस सूची में दर्ज बदलने के लिए: foldr, ReducedDataSet होगा [3,4,5 , 6]।
मैं इस उम्मीद नहीं थी के रूप में जब बाएं से दाएं अवशोषित 3 मान 3 और 6 के लिए आगे बढ़ना चाहिए, लेकिन जब दाएं से बाएं अवशोषित, 3 मूल्य 7 होगा, और 4.
के लिए आगे बढ़ेंक्या इसका मतलब है कि मेरी सूची में एक छिपी हुई पंक्ति संख्या है, और फ़ोल्ड और फ़ोल्डर केवल अंतिम सूची के क्रम क्रम में भिन्न है?
सोचें कि यह मेरे प्रश्न का उत्तर सबसे अच्छा है जैसा मैंने पूछा था। दूसरा जवाब गुना पर एक अच्छा त्वरित अनुस्मारक है, लेकिन जैसा कि मैंने स्वयं महसूस किया था, जवाब याद रखना था कि यह सूचियां थीं: एनएच जो सूची में स्थिति निर्धारित कर रहा था। – Philbo
मैं इस बात का भी प्रशंसक नहीं हूं कि हम वर्तमान में बहु-पंक्ति कार्यों को कैसे लिख रहे हैं - मैंने इसे ऊपर कैसे लिखा है, यह दर्शाता है कि हम वर्तमान में इसे कैसे कर रहे हैं। अपने लिंक को मेरे सीनियर को बाद में भेजने के लिए, देखें कि क्या यह प्रबंधित करने के मुकाबले यह एक और अधिक तर्कसंगत तर्क बनाता है। – Philbo
@ फिलिबो हर कोई मेरे साथ सहमत नहीं है कि चीजों को विघटित करना एक अच्छा विचार है। मैंने पाया है कि बहुत ही अच्छी तरह से नामित फ़ंक्शंस इनलाइन मज़े से अधिक आसानी से निपटने के लिए आसान होते हैं (और कहीं और पुन: उपयोग करते हैं), और लगभग सभी मामलों में एक बड़े फ़ंक्शन के भीतर किसी अन्यथा अज्ञात फ़ंक्शन को सार्थक लेबल असाइन करना लगभग हमेशा एक पठनीयता जीत होता है। उन पठनीयता * वास्तव में * समय के साथ जोड़ते हैं, हालांकि, विशेष रूप से जब आप कुछ पुराने कोड को फिर से काम करने के लिए वापस जाते हैं। सामान्य शैली के लिए, मैंने उस उद्देश्य के लिए उपलब्ध ग्रेबीर्ड सलाह के आधार पर एक उदाहरण प्रोजेक्ट लिखा: https://github.com/zxq9/zuuid – zxq9