Các Cobra Lập trình Ngôn ngữ của cú pháp được lấy cảm hứng từ Python, và nó không đi với đại tràng, vì vậy nó có vẻ như nó không phải là thực sự cần thiết. Tuy nhiên, chỉ cần loại bỏ dấu hai chấm là không đủ , có những thay đổi khác đối với cú pháp cần thiết. Xem, ví dụ đoạn mã này từ một trong những dự án đồ chơi của tôi :
kons = lambda hd, tl: lambda x: hd if x else tl
virst = lambda l: l(True )
rrest = lambda l: l(False)
Nếu không có dấu hai chấm để tách phần thân khỏi danh sách tham số, tôi sẽ phải sử dụng thụt lề:
kons = lambda hd, tl
lambda x
hd if x else tl
virst = lambda l
l(True )
rrest = lambda l
l(False)
Tôi tin rằng các phiên bản trước của Cobra đã tạo dấu hai chấm tùy chọn, bạn có thể sử dụng thụt đầu dòng hoặc dấu hai chấm hoặc cả hai. Tương tự như cách nó hoạt động trong Ruby, nơi có các từ khóa để phân tách các phần khác nhau của biểu thức kiểm soát, nhưng bạn cũng có thể sử dụng dấu tách biểu thức (dấu chấm phẩy hoặc dòng mới):
# 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
Trong các phiên bản hiện tại của Cobra, bạn có thể sử dụng dấu phẩy:
if x
y
có thể được viết như
if x, y
Bạn cần một số cách để tách các phần khác nhau của biểu thức hoặc định nghĩa điều khiển. Trong Python, đó là dấu hai chấm. Nếu bạn loại bỏ dấu hai chấm, bạn cần thay thế nó bằng một cái gì đó khác, ví dụ như thụt bắt buộc . Chỉ loại bỏ ruột kết sẽ không hoạt động.
Cách duy nhất để hoàn toàn chắc chắn là chính thức hóa cú pháp có và không có dấu hai chấm và chứng minh tính không mơ hồ của nó.
Tuy nhiên, lưu ý rằng một trong những câu cách ngôn của Zen of Python là "Rõ ràng là tốt hơn Ngụ ý", do đó, việc phân định rõ ràng các khối với dấu hai chấm dường như phù hợp với triết lý chung của Python. Các thiết kế và Lịch sử FAQ cũng đề cập rằng quyết định này được dựa trên bằng chứng thực nghiệm từ người tiền nhiệm của Python, ABC.