खोज…


नामकरण

प्रोलॉग में प्रोग्रामिंग करते समय, हमें दो प्रकार के नाम लेने चाहिए:

  • विधेय के नाम
  • चरों का नाम।

एक अच्छा विधेय नाम स्पष्ट करता है कि प्रत्येक तर्क का क्या अर्थ है। अधिवेशन द्वारा, विभिन्न तर्कों के विवरण को अलग करने के लिए नामों में अंडरस्कोर का उपयोग किया जाता है। इसका कारण यह है कि underscores_keep_even_longer_names_readable , जबकि mixingTheCasesDoesNotDoThisToTheSameExtent

अच्छे विधेयकों के उदाहरण हैं:

  • parent_child/2
  • person_likes/2
  • route_to/2

ध्यान दें कि वर्णनात्मक नाम का उपयोग किया जाता है। अभ्यागतों से बचा जाता है। वर्णनात्मक नामों का उपयोग करना उचित है क्योंकि प्रोलॉग विधेयकों का उपयोग आमतौर पर कई दिशाओं में किया जा सकता है, और यह नाम लागू होना चाहिए या सभी तर्कों में से कोई भी त्वरित नहीं है।

चरों के नामों का चयन करते समय मिश्रित पूंजीकरण अधिक आम है। उदाहरण के लिए: BestSolutions , MinElement , GreatestDivisor । क्रमिक राज्यों को निरूपित करने वाले चरों के नामकरण के लिए एक आम सम्मेलन S0 , S1 , S2 , ..., S , जहां S अंतिम अवस्था का प्रतिनिधित्व करता है।

खरोज

प्रोलॉग में केवल कुछ भाषा निर्माण हैं, और उन्हें इंडेंट करने के कई तरीके आम हैं।

कोई फर्क नहीं पड़ता कि किस शैली को चुना गया है, एक सिद्धांत जिसे हमेशा पालन किया जाना चाहिए वह एक पंक्ति के अंत में कभी भी स्थान (;)/2 पर नहीं है। इसका कारण है ; और , बहुत समान दिखते हैं, और , अक्सर एक पंक्ति के अंत में होता है। इसलिए, एक खंड का उपयोग करने वाले खंड उदाहरण के लिए लिखे जाने चाहिए:

(  Goal1
;  Goal2 
)

तर्कों का क्रम

आदर्श रूप से, प्रोलॉग विधेयकों का उपयोग सभी दिशाओं में किया जा सकता है। कई शुद्ध विधेय के लिए, यह वास्तव में मामला भी है। हालांकि, कुछ केवल विशेष मोड में काम करने की भविष्यवाणी करते हैं , जिसका अर्थ है उनके तर्कों के तात्कालिक पैटर्न।

सम्मेलन द्वारा, इस तरह के विधेय के लिए सबसे आम तर्क क्रम है:

  • इनपुट तर्कों को पहले रखा गया है। विधेय कहे जाने से पहले इन तर्कों को तत्काल दिया जाना चाहिए।
  • एक साथ होने वाले तर्कों के जोड़े आसन्न रूप से रखे जाते हैं, जैसे p(..., State0, State, ...)
  • अंतिम आउटपुट तर्क अंतिम दिए गए हैं। ये विधेय विधेय द्वारा त्वरित होते हैं।


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow