Clover2開発日誌

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

Kotlinショック

Kotlinのドキュメント読んでいます。素晴らしいです。表記がホント凄いですね、、、、。Swiftは出力するコードは速いと思いますが、ちょっと表記がイマイチですね。後発の割には。

Kotlinの表記を見習って幾つかClover2に改良を加えたいと思います。

 

Clover2ではlist { 1, 2, 3 }がリストのオブジェクト値の表現ですがKotlinではListOf(1,2,3)となっているのは本当に賢いなと思いました。そうか、newキーワードがなかったら、クラスを関数の様に呼んでしまえば、初期化できるんだ。と目から鱗が取れました。listという予約語も必要ないですし、素晴らしいですね、、、、。可変長引数さえClover2に入れればListOf(1,2,3)で実現できますね。本当にKotlinには参りました。

幾つか、Kotlinから表記をClover2に入れたいと思います。

if文が値を返すようにした方が良いですかね。あと関数やメソッドの最後の値がreturnされる。lambda式の第一引数の省略のitとか。

後は型推論が強力ですね。Kotlinは。目指せ、Kotlin!でいきたいと思います。

後方互換性はこの際あまり気にしないようにします。

既にユーザーの方には申し訳ないですが、、、変更点はwikiに書いていきます。

ごめんなさい。

インタプリタの方は大体出来上がっているので、次は言語機能の拡張の作業に移ります。