ボツになった構文

with文

Xtalはwith文の導入を考えていた時期がありました。 結論として、with文は動的型言語が持つべき機能ではない、ということになりました。 with文は確かに便利な場合もあるのですが、 時にとてもわかりにくいバグを誘発してしまいます。withがあるjavascriptで…

const式

書式: const expr意味: C++のconstと同じようなconst性を付与する。 オブジェクト自体が変更不可となるのではなく、const式によって得られる参照からの変更が不可能となります。 a: [0]; b: const a; a[0] = 10; // ok b[0] = 10; // const error 内部に保持…

lazy式

書式: lazy expr意味: 実際に値が必要になるまで、exprの実行を遅延する a: lazy (100 + 200).p; // この文だけでは300と表示されない。 (a + 100).p; // 遅延されていたaが評価され、300と表示され、その後に400と表示される あんまり意味を見出せないので…

 関係演算子が右辺を返す

5 これがあると、 x: 10; if(5 < x < 20){ } と書けるのです。しかし、 n: null; if(n==null){ } が上手くいきません。

boost::lambda風無名関数

fun(x){ return x+5; } を @1+5 と書ける機能です。 fun(x, y){ return x*y; } を @1*@2 と書ける機能です。 // 偶数だけ取り出して配列としてプリントする [4, 5, 8, 3, 7, 2].select(fun(x){ return x%2==0; }).to_a.p; ↓ [4, 5, 8, 3, 7, 2].select(@1%2=…

ヒアコード

思いついたけど、とりあえずボツにした構文の紹介です。 将来復活するかもしれません。 Rubyなどにはヒアドキュメントという機能があります。 http://www.ruby-lang.org/ja/man/?cmd=view;name=%A5%EA%A5%C6%A5%E9%A5%EB#a.a5.d2.a5.a2.a5.c9.a5.ad.a5.e5.a5…