La sintaxis del
Cobra Programming Language está muy inspirada en Python's, y elimina el colon, por lo que parece que No es estrictamente necesario. Sin embargo, no es suficiente
simplemente eliminar los dos puntos, hay otros cambios en la sintaxis necesarios. Ver, por ejemplo
este fragmento de código de uno de mis
toy projects :
kons = lambda hd, tl: lambda x: hd if x else tl
virst = lambda l: l(True )
rrest = lambda l: l(False)
Sin los dos puntos para separar el cuerpo de la lista de parámetros, tendría que usar sangría:
kons = lambda hd, tl
lambda x
hd if x else tl
virst = lambda l
l(True )
rrest = lambda l
l(False)
Creo que las versiones anteriores de Cobra hicieron que los dos puntos fueran opcionales, podría usar sangría o dos puntos o ambos. Similar a cómo funciona en Ruby, donde hay palabras clave para separar las diferentes partes de las expresiones de control, pero también puede usar separadores de expresiones (punto y coma o nueva línea):
# 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
En las versiones actuales de Cobra, puedes usar una coma:
if x
y
se puede escribir como
if x, y
Necesita alguna forma de separar las diferentes partes de las expresiones de control o las definiciones. En Python, ese es el colon. Si elimina el colon, debe reemplazarlo con otra cosa, por ejemplo, forzado sangría. Solo eliminar los dos puntos no funcionará.
La única forma de estar absolutamente seguro es formalizar la sintaxis con y sin los dos puntos y probar su no ambigüedad.
Sin embargo, tenga en cuenta que uno de los aforismos del Zen de Python es "Explícito es mejor que Implícito ", por lo que la delineación explícita de bloques con dos puntos parece encajar con la filosofía general de Python. El Diseño e historia Las Preguntas frecuentes también mencionan que esta decisión se basa en evidencia empírica del antecesor de Python, ABC.