Xtalの目指してるもの。
言語仕様は、これはまるでRuby++だ!と誰かが呼んでくれるようなモノを目指しました。
例えばRubyが将来取り入れようとしている機能を取り入れてます。
個人的にこうだといいなぁ、と思った部分は次のように変えて実装しています。
- 文字列はimmutable
- array.eachは外部イテレータを返す。(見た目はRuby、機能はPythonとなっている)
- インスタンス変数はクラスまたはモジュール固有。
- 基本的な見た目はC系を採用 (do endではなく、{})
- 浮動小数点数型も整数型と同様に変数埋め込み (主にゲーム用の組み込み言語を目指しているため、整数に比べ浮動小数点数型を使うと速度がガタ落ちというわけにいかない)
- 明示的な変数定義 (variable_name : 100; という風に:を使う)
- 変数スコープはブロックごとに作られる
if(false){ a : 0; // aはif文の中だけで有効な変数となる } println(a); // エラー
- ループ文にはラベルを付けられる。array.eachのでのブロックからもbreak ラベルで多段に抜け出せる。
- ブロック引数は外側の同名の変数を上書きしない。