構文糖衣

javascriptsquirrelの関数定義は次のように書きます。

function foobar(){
  return 0;
}

これは、次の構文のシンタックスシュガーです。

// javascript
var foobar = function(){
  return 0;
} 

// squirrel
loacal foobar = function(){
  return 0;
}

Xtalも、やはりこのようなシンタックスシュガーを追加することにしました。
つまり、次のように書けるということです。

fun foobar(){
  return 0;
}

methodとfiberも同様の記述が可能です。

method meth(){
  return 0;
}

fiber fib(){
  yield 10;
}

もちろんクラスも同様の書き方が許されるようになります。

class FooBar{}

// FooBar: class{}と同じ

クラススコープ内ではさらに、'method'の省略も可能となります。


このシンタックスシュガーの導入により、これまで下のように書いていたクラス定義が、

FooBar: class{
  _value;

  initialize: method(){
    _value = 0;
  }

  bar: method(a, b){
    _value = a + b;
  }
}

次のようにも書けるようになるということです。

class FooBar{
  _value;

  initialize(){
    _value = 0;
  }

  bar(a, b){
    _value = a + b;
  }
}

C++プログラマーは、違和感がかなり少なくなったのではないかと思います。