Fulyn v2

しばらく触ってない間にいろいろ変わってしまった!

Mono (.NET のオープンソース実装)をハックしてたり、Nemerle という言語のコンパイラをいじったりしていてすごく忙しかったのです。

ごめんなさい!これから追いつきます。

旧ヴァージョンの Fulyn はこちらへ

v2 の特徴

Fulyn v1 は美しくないところがまだまだあったので、言語仕様をさらにシンプルにし、それでいて表現力をさらにあげます。

全てを式に

Fulyn v2 では、プログラムを式の列として扱います。

式には、定数、関数、代入文、パターンマッチ文、リテラルなどがあります。

型推論の強化

型推論はもっと頑張ります。

ブロックのサポート

Fulyn v2 では、ブロック自体を一つの式として扱います。

これにより、複文ラムダの実現が可能になります。

これで、関数をラムダで書くことが可能になります。

   main = () => {
     x = plusone(5)
     putnum(x)
   }
   
   plusone = i => add(i, 1)

パターンマッチの強化

v1 では、定数パターンしか存在しませんでしたが、変数パターン、Cons パターンなどのその他のパターンも実装します。

変数パターンはすべての入力にマッチするので、 v1 の () => ... は廃止されます。

   source = read()
   result = ? source {
     | 'y' => 1
     | 'n' => 0
     |  x  => { print("invalid answer: "); print(x); -1 }
   }
   array = [0, 1, 2]
   tail_of_array = ? array {
     | head :: tail => tail
     | _ => []
   }

あとはまだ考え中です。。

こめんと


コメントお名前NameLink

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS