変数定義や関数定義とか

Xtalでは変数を次の形で定義します。

 variable_name : 100;

変数名 : 初期値;
という形です。


Xtalでは fun(){} という形で関数式が書けます。
ECMAScriptの function(){} と同じです。
functionは長ったらしいのでfunを採用しました。

それを変数に定義すれば、関数定義となります。

 foo : fun(a, b){
   return a + b;
 }

 println(foo(5, 6)); // 11

ECMAScriptでは fun foo(a, b){} という風に関数定義できますが、Xtalではあえてその形の関数定義構文を用意していません。

左に名前が揃うのが一番良いという理念のためです。

これはクラスやモジュール定義でも同様で、クラス定義は次のように書きます。

 Bar : class{
   foo : method(){}
 }

見た目の通りXtalでは、クラス定義とはクラス式を変数に定義することを指します。