मुझे पता है कि गुना-बाएँ बाएँ-झुकाव वाले पेड़ पैदा करते हैं और गुना-दाएँ दाएँ-झुकाव वाले पेड़ पैदा करते हैं, लेकिन जब मैं एक मोड़ के लिए पहुँचता हूँ, तो मैं कभी-कभी खुद को सिरदर्द-उत्पीड़न में फंसता हुआ पाता हूँ कि किस तरह के गुना को निर्धारित करने की कोशिश कर रहा हूँ। उचित है। मैं आमतौर पर पूरी समस्या को समाप्त करता हूं और गुना फ़ंक्शन के कार्यान्वयन के माध्यम से कदम बढ़ाता हूं क्योंकि यह मेरी समस्या पर लागू होता है।
इसलिए मैं जानना चाहता हूं:
- यह निर्धारित करने के लिए अंगूठे के कुछ नियम हैं कि क्या बाएं या दाएं को मोड़ना है?
- मैं जल्दी से यह तय कर सकता हूं कि जिस समस्या का मैं सामना कर रहा हूं, उसे किस प्रकार का उपयोग करना है?
वहाँ में एक उदाहरण है द्वारा उदाहरण स्काला एक समारोह में कहा जाता समतल जो एक एकल सूची में तत्व सूचियों की एक सूची concatenates लिखने के लिए एक गुना का उपयोग कर के (पीडीएफ)। उस मामले में, एक सही तह उचित विकल्प है (जिस तरह से सूचियों को संक्षिप्त किया गया है उसे देखते हुए), लेकिन मुझे उस निष्कर्ष पर पहुंचने के लिए थोड़ा सोचना पड़ा।
चूंकि फोल्डिंग (कार्यात्मक) प्रोग्रामिंग में इस तरह की एक सामान्य क्रिया है, मैं इस प्रकार के निर्णय जल्दी और आत्मविश्वास से करने में सक्षम होना चाहता हूं। तो ... कोई सुझाव?