A sintaxe da linguagem de programação Cobra é fortemente inspirada na linguagem Python e acaba com os dois pontos, portanto parece que não é estritamente necessário. No entanto, não basta remover o cólon, existem outras alterações na sintaxe necessária. Veja, por exemplo, este código de um dos meus projetos de brinquedos :
kons = lambda hd, tl: lambda x: hd if x else tl
virst = lambda l: l(True )
rrest = lambda l: l(False)
Sem os dois pontos para separar o corpo da lista de parâmetros, eu precisaria usar o recuo:
kons = lambda hd, tl
lambda x
hd if x else tl
virst = lambda l
l(True )
rrest = lambda l
l(False)
Acredito que as versões anteriores do Cobra tornavam o cólon opcional, você poderia usar o recuo, o cólon ou ambos. Semelhante à maneira como funciona no Ruby, onde existem palavras-chave para separar as diferentes partes das expressões de controle, mas você também pode usar separadores de expressão (ponto-e-vírgula ou nova linha):
# 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
Nas versões atuais do Cobra, você pode usar uma vírgula:
if x
y
pode ser escrito como
if x, y
Você precisa de alguma maneira de separar as diferentes partes das expressões ou definições de controle. Em Python, esse é o cólon. Se você remover o cólon, precisará substituí-lo por outra coisa, por exemplo, recuo forçado . Apenas remover o cólon não funcionará.
A única maneira de ter certeza absoluta é formalizar a sintaxe com e sem dois pontos e provar sua não ambiguidade.
Observe, no entanto, que um dos aforismos do Zen do Python é "Explícito é melhor que implícito"; portanto, o delineamento explícito de blocos com dois pontos parece se encaixar na filosofia geral do Python. As Perguntas frequentes sobre design e história também mencionam que esta decisão se baseia em evidências empíricas do antecessor do Python, ABC.