友人と、Simpという新しい言語を作成しています。それは、シンプルだが現代的なスクリプト言語で、直感的でわかりやすい構文でなければなりません。短い例を以下に示します。言語デザイン:2つの値を比較するときの暗黙的な変換
var sum = 0
for i in 3..999 {
if (i % 3 == 0) or (i % 5 == 0) {
sum += i
}
}
say sum
2つの値を比較するときに暗黙的な変換を使用する必要がある場合は、問題はありません。具体的には、次のプログラム出力はどうすればよいでしょうか?
# 1.
say (1 == '1')
# 2.
var x = 1
switch (x) {
case '1': say true; break;
case 1: say false; break;
}
# 3.
if ('1') say true;
else say false;
1.
出力trueの場合、我々はおそらく、あまりにも種類をチェック===
オペレータを含める必要があります。しかし私はそのオペレーターの大ファンではない。
2つの異なるタイプが比較されるため、エラーが発生する場合は問題ありません。もう少しタイピングすると(1 == int('1')
)、問題が解決され、コードが明確になります。しかし、その場合、2.
と3.
の動作方法は?
どのような解決策をお勧めしますか?
ありがとうございました。おそらくタイプをチェックするために '=='を使うでしょう。しかし、単純に 'if(x){}'は 'x'で暗黙の変換を行い、' '"、[]、0'はfalseに評価します。したがって、 'if(x){}'が 'if(x == true){}'よりも厳密に厳密になることはありません。たぶん、私たちは '{}'のカッコも取り除きますが、それは別の話です:-)。 – clime
Btw。私と私の友人、私たちはどちらもハッスケルが大好き!それは目立つようになるでしょう:-)。本当にクールなものに近いと思う。あなたの指が私たちのために交差してください:-)。 – clime
ハハ、確かに!あなたがまだこれについて作業していることを知っておいてよかったです。何が来るのを楽しみにしています – TheIronKnuckle