Die Syntax der Cobra-Programmiersprache ist stark von der von Python inspiriert und macht den Doppelpunkt überflüssig. Es scheint also, dass dies nicht unbedingt erforderlich ist. Es reicht jedoch nicht aus, nur den Doppelpunkt zu entfernen , sondern es sind weitere Änderungen an der Syntax erforderlich. Siehe zum Beispiel diesen Code aus einem meiner Spielzeugprojekte :
kons = lambda hd, tl: lambda x: hd if x else tl
virst = lambda l: l(True )
rrest = lambda l: l(False)
Ohne den Doppelpunkt, um den Körper von der Parameterliste zu trennen, müsste ich Einrückung verwenden:
kons = lambda hd, tl
lambda x
hd if x else tl
virst = lambda l
l(True )
rrest = lambda l
l(False)
Ich glaube, frühere Versionen von Cobra haben den Doppelpunkt optional gemacht. Sie können entweder Einrückungen oder einen Doppelpunkt oder beides verwenden. Ähnlich wie in Ruby, wo es Schlüsselwörter gibt, um die verschiedenen Teile von Steuerausdrücken zu trennen, aber Sie können auch Ausdruckstrennzeichen (Semikolon oder Zeilenvorschub) verwenden:
# 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
In aktuellen Cobra-Versionen können Sie ein Komma verwenden:
if x
y
kann geschrieben werden als
if x, y
Sie benötigen eine Möglichkeit, die verschiedenen Teile von Steuerelementausdrücken oder -definitionen zu trennen. In Python ist das der Doppelpunkt. Wenn Sie den Doppelpunkt entfernen, müssen Sie ihn durch etwas anderes ersetzen, z . B. durch erzwungenes Einrücken. Nur das Entfernen des Doppelpunkts wird nicht funktionieren.
Die einzige Möglichkeit, absolut sicher zu sein, besteht darin, die Syntax mit und ohne Doppelpunkt zu formalisieren und ihre Eindeutigkeit zu beweisen.
Beachten Sie jedoch, dass einer der Aphorismen des Zen von Python "Explizit ist besser als Implizit" ist, sodass die explizite Abgrenzung von Blöcken mit Doppelpunkten zur allgemeinen Philosophie von Python zu passen scheint. In den häufig gestellten Fragen zu Design und Verlauf wird auch erwähnt, dass diese Entscheidung auf empirischen Beweisen von Pythons Vorgänger ABC basiert.