Cobra Мова програмування «s синтаксис сильно натхненний мови Python, і це робить геть з двокрапкою, так що здається , що це не є строго необхідним. Однак недостатньо просто видалити двокрапку, потрібні й інші зміни в синтаксисі. Дивіться, наприклад, цей фрагмент коду з одного з моїх іграшкових проектів :
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)
Я вважаю, що більш ранні версії Cobra зробили товсту кишку необов’язковою, ви можете використовувати або відступи, або двокрапку, або обидві. Аналогічно тому, як це працює в Ruby, де є ключові слова для розділення різних частин керуючих виразів, але ви також можете використовувати роздільники виразів (крапка з комою або новий рядок):
# 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
У поточних версіях Cobra ви можете використовувати кому:
if x
y
можна записати як
if x, y
Вам потрібен якийсь - то спосіб поділу різних частин виразів управління або визначень. У Python це товста кишка. Якщо ви видалите товсту кишку, її потрібно замінити чимось іншим, наприклад примусовим відступом. Тільки видалення товстої кишки не вийде.
Єдиний спосіб бути абсолютно впевненим - це формалізувати синтаксис з двокрапкою та без неї та довести її неоднозначність.
Однак зауважте, що одним із афоризмів дзен Питона є "Явне краще, ніж неявне", тому явне розмежування блоків колонами, здається, відповідає загальній філософії Пітона. Дизайн і історія FAQ також згадує , що це рішення засноване на емпіричних даних від попередника Пайтона ABC.