新機能を考える

Xtalに型チェック

型チェックの導入を考えています。Array var = 10;と書くと、 temp: 10; if(!Array.op_check(temp)) throw TypeError(); var: temp;というコードとほぼ等価になる機能です。普通の型だと、単純に遅くなるだけですが、int と floatの時だけは最適化で速くなる…

引数の型チェック

foo: fun(stack is StackInterface){ } foo(5); //=> ArgumentError と、書ける機能。書けるのはisだけではなく foo: fun(n > 0){ } foo(100); //=> ok foo(-10); //=> ArgumentError とか書けるというのはどうでしょう。デフォルト値は次のように書きます。…

interface

// スタックはpushとpopを持つ StackInterface: interface{ push; pop; } // 簡単のため、配列を継承してスタックを作る MyStack: class(Array){ push: Array::push_back; pop: Array::pop_back; } hoge: MyStack(); // is演算子で、interfaceと同じメンバを…

新機能を考える

考えている新機能のカテゴリです。コレはダメだろうとか、こうしたほうがとか、ご意見を募集です。