शुरुआत में, प्रोलॉग के शुद्ध घोषणात्मक भाग पर एक साधारण कारण के लिए ध्यान केंद्रित करने का प्रयास करें: यह वह हिस्सा है जो प्रोलॉग को अन्य प्रोग्रामिंग भाषाओं से अलग करता है। भाषा के शुद्ध, एकात्मक भाग पर ध्यान केंद्रित करें और पूरी तरह से कटौती से बचें। आप इस प्रोग्रामिंग प्रतिमान में विसर्जित करने की अपेक्षा कैसे कर सकते हैं?
हालांकि, आपको निश्चित रूप से कुछ चुनौतियों का सामना करना पड़ेगा। विशेष रूप से जब एन्कोड करने की कोशिश कर रहे हैं-तो-और संरचना और सामान्य अस्वीकृति। जब इस तरह के निर्माण की स्थिति को आई-भाग के लिए सफल होने की आवश्यकता होती है और उस भाग के लिए असफल होने की आवश्यकता होती है, तो आप गैर-मोनोटोनिक कोड में होते हैं। हालांकि, इस तरह के कोड को स्वच्छ तरीके से संभालने के लिए कभी भी बनाया गया था
इसके बजाय, प्रोल केवल तभी नियमों को जानता है। तो अनिवार्य रूप से आपके पास एक भाग के लिए एक नियम होगा और दूसरे भाग के लिए दूसरा होगा। यह शुरुआत में आपको काफी असामान्य लगेगा, लेकिन यह आपको बहुत शुद्ध कोड का अनुभव करने की अनुमति देता है।
शुद्ध कोड के उदाहरणों के लिए my page देखें।
यह भी देखें: Features of good Prolog code? मजेदार है कि रोचक प्रश्न हमेशा SO पर बंद हो जाते हैं।
हरे या लाल कटौती के लिए, बस यह स्वीकार करें कि लगभग कोई हरा कटौती नहीं है। यदि आप सुरक्षित तरीके से कटौती का उपयोग करना चाहते हैं, तो आपको अतिरिक्त शर्तों ("गार्ड") जोड़ना होगा जो अन्यथा कोई समझ नहीं लेते हैं।यह वास्तव में अनुकूलकों, कंपाइलर लेखकों और पसंद के लिए कुछ है।
मेरा उत्तर में थोड़ा और अधिक संतुलित बनाए रखने हेतु, कटौती के साथ दक्षता में सुधार के लिए एक साफ रास्ता का एक उदाहरण है:
विशेष रूप से, इसके साथ गलत सिवाय इसके कि अपने कार्यक्रम तर्क कठिन पालन करने के लिए हो जाता है कुछ भी नहीं है। एक अर्थ में, कटौती और असाइनमेंट आपके लॉजिकल प्रोग्राम को एक अनिवार्य कार्यक्रम के करीब लाते हैं - अगर आप प्रोलॉग को समझना चाहते हैं तो आपको दृढ़ता से टालना चाहिए (कोर्स को पारित करने के विपरीत)। – dasblinkenlight
कट्स किसी अन्य चीज़ की तरह एक उपकरण हैं जिन्हें नौकरी के लिए उचित रूप से चुना जाना चाहिए। आपका प्रशिक्षक उनके खिलाफ सिफारिश कर रहा है क्योंकि नौसिखिया प्रोग्रामर अक्सर समाधान में अतिरिक्त प्रयास नहीं दिखाकर अपने आउटपुट "neater" को एक त्वरित तरीके के रूप में उपयोग करते हैं, जब वास्तव में परिदृश्य होते हैं कि वे वास्तव में उन्हें देखना चाहते हैं। अनजाने में, उन्होंने समाधान को काट दिया है कि वे एक अलग मामले में चाह सकते हैं। इसलिए उन्हें आउटपुट को "साफ" करने के तरीके के रूप में उपयोग नहीं किया जाना चाहिए, लेकिन तर्क में एक विकल्प बिंदु को खत्म करने के लिए एक सावधानी से विचार किया गया तरीका है। – lurker
यदि आप कुछ विशिष्ट समस्याओं में भाग लेते हैं जहां आपको लगता है कि आपको कट का उपयोग करना चाहिए, तो उन्हें StackOverflow.com पर प्रश्नों के रूप में पोस्ट करने के लिए स्वतंत्र महसूस करें। सवाल पूछते हुए, "मैं बिना किसी कटौती के इस कोड कैसे कर सकता हूं?" पूछने के लिए एक अच्छा प्रोलॉग सवाल है। :) – lurker