Clover2開発日誌

Clover2というJavaのように静的な型を持つRubyのようなコンパイラ+仮想マシンの開発日誌です。LLVMでJITもします。https://github.com/ab25cqにて開発しています

言語仕様の変更点

ブロックが block { a := 123 } などから { a := 123 } に変更されています。ブロックは戻り値を返すようになりました。最後に実行された式の値がブロックの戻り値です。a := { 123 }; System.assert(a == 123)は真です。
ブロックの表記が変わったので配列の表記が変わってます。 { 1, 2, 3 }から[ 1, 2, 3 ]となっています。リストなどはlist { 1, 2, 3 }から変わっていません。
if文が戻り値を返すようになりました。a := if(true) { 123}; System.assert( a == 123 )は真です。
変更申し訳ないです。Kotlinが気に入ってましてClover2をKotlinの言語仕様に近づけるため、これからもしばらく言語仕様の変更があると思います。Kotlinのような表記ができるようになったら、version 5.0としてリリースして言語仕様を固定したいと思います。申し訳ないです。