.NET2.0対応版
現在、Nemerleプロジェクトは.NET2.0のGenerics対応がメインになっているようなので、そっちを追っかけてみることに。ところが、このGenerics版は.NET2.0β2にバグがあってSVNからチェックアウトしたMonoでないとビルド出来ません。そのMonoもcscだとWin32Exception.csのコンパイルに失敗したり、mini-codegen.cでインクルードしているsys/mman.hがひっかかったりでmakeを通すのにごにょごにょする羽目に。(^^;
で、本物のGenerics対応になったNemerleを試してみようとテストコードを走らせてみると、
using System.Console; def print_list (l) { try { WriteLine (l); } catch { | e => WriteLine (e.Message); } } def lx = [0, "1", 2:object]; def ly = [0:object, "1", 2:object]; print_list (lx); print_list (ly); /* Object reference not set to an instance of an object [0, 1, 2] */
なんか、例外が飛んでしまいます。問題は、
def lx = [0, "1", 2:object];
ここなんですが、listは最後の要素の型から型推論するので、最後を型指定してobject型のlistにしているのですが、値型の要素を入れるとnullになってしまうようです。ただ、これはNemerle0.3.2では大丈夫だったので、単なる不具合ではないかと思います。というか、型指定必須だったらメンドイです・・・(^^;