fun{}.self
Xtalは、} という記号の後は後置演算子や二項演算子が継続できない仕様になっています。
そのため、fun{}()というような記述が出来ず、(fun{})() と記述する必要があります。
この制限は、
foo: fun(n){ return 500; } (10 + 20).p;
が意図せず 500 をpするのを避けるために導入されています。
しかし、不便なこともあるので、上のような罠が無い .演算子と .?演算子は } の後にも継続できることにしました。
あわせて、Anyにselfという、自身を返すだけのメソッドを追加しました。
これで次のように記述できます。
fun(i){ i.p; }.self(100); //=>100
よく考えたらこれではダメでした。別の方法を考案中。