コブラのプログラミング言語の構文は重くPythonのに触発され、厳密には必要ではないようですので、それは、離れてコロンとしています。ただし、コロンを削除するだけでは十分ではなく、必要な構文に他の変更があります。たとえば、私のおもちゃプロジェクトの 1 つからの次のコードを参照してください。
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では、これがコロンです。コロンを削除する場合は、強制インデントなど、別のものに置き換える必要があります。コロンを削除するだけでは機能しません。
絶対に確実にする唯一の方法は、コロンを使用して、または使用せずに構文を形式化し、その曖昧さを証明することです。
ただし、Zen of Pythonの格言の1つは「明示的であると暗黙的である」ので、コロンを使用したブロックの明示的な記述はPythonの一般的な哲学に適合するようです。デザインと歴史FAQでは、また、この決定はPythonの前身、ABCから経験的証拠に基づいていることを言及しています。