2005-09-01から1ヶ月間の記事一覧

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 = Order…

System.Queryのコンパイル

System.Query.dllのソースをC#2.0でコンパイルできるように変換してgmcsでコンパイルするも、通らず。そのまんまアップ出来ないので最小限の再現コードを用意してみました。 using System.Collections.Generic; public interface I<T, K> {} public delegate K Func<T, K></t,></t,>…

Lambda expressions

C#3.0のLambdaがシンプルで良い感じなので、Nemerleでも真似出来ないかと色々試すも、私の知識じゃ歯が立たず。あんまマクロ分かってないんですよね。(^^;で、格闘の跡。 using Nemerle.Compiler; // 引数1つ macro @fx (parm : parameter, body) syntax ("…

はじめてのLINQ

C#

LINQ Previewをダウンロードして実験君。ただ、日本語版VS2005β2には対応していないようなので、コマンドラインからちまちまコンパイルすることに。 using System; using System.Query; class Program { public static void Main () { var src = new int [] …

似非Restriction Operators

・The LINQ Project C#3.0とLINQが発表され、各地で盛り上がっているよーですが、仕事で嵌っていて全く情報が集められてません。悔しいのでNemerleで対抗です。よーわからないけど見様見真似。(^^; using Nemerle.Utility; [Record] class Person { [Accesso…

・Nemerle 0.9.0 is out Nemerle 0.9がリリースされました。0.32から一気に0.9へ。そろそろ1.0がリリースかな。

はじめての型推論

ひょっとしたら型推論をサポートする言語を使っていないと、ピンとこないかも知れないので、今更ながらご紹介。次のような、変数x,yを足す関数を定義し、コンパイルします。 def add (x, y) { x + y } すると、当然のごとく、 app.n:2:5:2:10: error: typing…

ジェネリックパラメータの明示的指定

Nemerleには型推論があるため、ジェネリック型を明示的に指定する必要がありませんが、実は明示的に指定する方法もありませんでした。最近やっと可能になったのですが、文法的にちょっとクセがあります。 using Nemerle.IO; class A [X] { public mutable a …

Partial applicationその3

更に色々使ってみる。 def func (x : int, y : string, z : double) : void { System.Console.WriteLine ($"$x,$y,$z"); } // 引数となるタプル def t1 = (1, "two", 3.0); def t2 = (2, 4.0); def t3 = (3, "four"); func (t1); func (_, "three", _) (t2);…

Partial application

日本語では部分適用と呼ぶようですが、関数型言語をやってないと馴染みがないですね。誤解を恐れずに動きだけを言うと、N個の引数を取る関数にM(M def add (x : int, y : int) { x + y; } def add7 = add (_, 7); /* // これと同じ def add7 = fun (x) { add…

Partial applicationその2

引数だけでなく、オブジェクトにも適用出来たりします。 class X { msg = null; public this (msg : string) { this.msg = msg; } public Say (key : string) : void { System.Console.WriteLine ($"$msg, $key"); } } def x1 = X ("Hello"); def x2 = X ("G…

Code Completion

・http://nemerle.org/Code_Completion 最近の目玉機能。ソースコードを食べてTypeTreeを作成します。自前でParserとかこさえる必要が無くなるので、ツール開発者には朗報かも。上記リンクを読むと雰囲気が掴めると思います。ただ、現在開発中の為、サンプル…

散財

・http://www.amazon.co.jp/exec/obidos/ASIN/B0007YT8XY/249-4314563-8109935 つい、クリックしてしまいました。(^^;

仕事

今月が勝負。気合い入れて行かねば。でも、「パラメシウムごときで俺を止めることはできん!」とか、騒いだら白い目で見られるだろうなぁ。というか、ウチの職場じゃ元ネタだれもしらねーよ・・・

9/5

・Nemerle Forums Webフォーラムが出来た模様。ところで、ここ数日、NemerleのMakeが通らず。.NET 2.0 August CTPって結構変わったのかしら?