0
この言語の構文は混乱します。print文がエラーを起こしていますか?
fun bar a =
print (Int.toString a);
0
コンパイル。なぜemacsが0をインデントするのかわからない。
fun bar a =
print (Int.toString a)
0
エラーを投げます。
Error: operator is not a function [tycon mismatch]
operator: unit
in expression:
(print (Int.toString a)) 0
fun foo a =
if a < 0
then
0
else
0
コンパイル。
fun foo a =
if a < 0
then
print (Int.toString a);
0
else
0
がエラーをスローします。
syntax error: replacing SEMICOLON with EQUALOP
ワット?
私はこれを理解できません。
混乱の一部は、Ullmanのような標準的な書籍のいくつかがセミコロンを浪費する傾向にある可能性があります。セミコロンはデリミタではなく、主にターミネータであるという印象を得るのは簡単です。 –
if/elseブランチの最後のステートメントとしてprintステートメントを使用し、そのブランチからreturn()を使用する方法はありますか?この言語はコルセットのように感じます... –
@lotolmencre '真ならば、print(" foo ")else()'。 'print'ステートメントはすでにユニット関数です。あなたはいつも 'fun printIfTrue(test、val)= if test then print(val)else()'という別の関数でこれをラップすることができます。 – eatonphil