MonoでSystem.Query

Sequence.csをgmcsコンパイル出来たので、System.QueryをNemerleから使ってみる。

using System.Console;
using System.Query.Sequence;

// def src = array [1, 2, 3, 4, 5, 6, 7, 8, 9]; // error!
def src = [1, 2, 3, 4, 5, 6, 7, 8, 9];
def os = OrderByDescending (Where (src, fun (n) { n % 2 == 0}), fun (n) { n });

foreach (n in os) 
    WriteLine (n);

/* 結果
8
6
4
2
 */

型推論が使えるので圧倒的にタイプ量が少ないですね。あと、usingが名前空間だけでなくクラス名にも適応できるところとか。

ただ、int[]をIEnumerable[int]と見てくれないところが気になります。list[int]からIEnumerable[int]は問題なしなんだけどなぁ。