कोबरा प्रोग्रामिंग भाषा की वाक्य रचना भारी पायथन के से प्रेरित है, और यह, पेट को दूर करता है तो ऐसा लगता है कि यह सख्ती से आवश्यक नहीं है। हालांकि, यह केवल बृहदान्त्र को हटाने के लिए पर्याप्त नहीं है , सिंटैक्स के लिए अन्य परिवर्तनों की आवश्यकता है। उदाहरण के लिए, मेरी एक खिलौना परियोजना से कोड का यह टुकड़ा :
kons = lambda hd, tl: lambda x: hd if x else tl
virst = lambda l: l(True )
rrest = lambda l: l(False)
शरीर को पैरामीटर सूची से अलग करने के लिए बृहदान्त्र के बिना, मुझे इंडेंटेशन का उपयोग करना होगा:
kons = lambda hd, tl
lambda x
hd if x else tl
virst = lambda l
l(True )
rrest = lambda l
l(False)
मेरा मानना है कि कोबरा के पहले के संस्करणों ने कोलन को वैकल्पिक बना दिया था, आप इंडेंटेशन या कोलन या दोनों का उपयोग कर सकते थे। रूबी में यह कैसे काम करता है, इसके समान है, जहाँ नियंत्रण अभिव्यक्तियों के विभिन्न भागों को अलग करने के लिए खोजशब्द हैं, लेकिन आप अभिव्यक्ति विभाजकों (अर्धविराम या न्यूलाइन) का भी उपयोग कर सकते हैं:
# idiomatic
while true do puts "I am awesome" end
# ↑↑
# non-idiomatic, but legal
while true; puts "I am awesome" end
# ↑
# non-idiomatic, but legal
while true
puts "I am awesome" end
# idiomatic
while true
puts "I am awesome"
end
कोबरा के वर्तमान संस्करणों में, आप अल्पविराम का उपयोग कर सकते हैं:
if x
y
के रूप में लिखा जा सकता है
if x, y
आपको नियंत्रण अभिव्यक्तियों या परिभाषाओं के विभिन्न भागों को अलग करने के कुछ तरीके की आवश्यकता है । पायथन में, वह बृहदान्त्र है। यदि आप बृहदान्त्र को हटाते हैं, तो आपको इसे कुछ और के साथ बदलने की आवश्यकता होती है, उदाहरण के लिए मजबूर इंडेंटेशन। केवल बृहदान्त्र को हटाने से काम नहीं चलेगा।
पूरी तरह से सुनिश्चित करने का एकमात्र तरीका यह है कि बृहदान्त्र के साथ और बिना सिंटैक्स को औपचारिक रूप दिया जाए और इसकी गैर-अस्पष्टता साबित की जाए।
ध्यान दें, हालांकि, कि पायथन के ज़ेन के पूर्वजों में से एक है "स्पष्ट इम्प्लिक्ट से बेहतर है", इसलिए कॉलोन के साथ ब्लॉकों का स्पष्ट रूप से फैलाव पायथन के सामान्य दर्शन के साथ फिट लगता है। डिजाइन और इतिहास पूछे जाने वाले प्रश्न यह भी कहा गया है कि यह निर्णय अजगर के पूर्ववर्ती, एबीसी से अनुभवजन्य साक्ष्य पर आधारित है।