Nemerle

variantでtree

なんとなく、実験。 using System; variant Tree ['t] where 't : IComparable { | Node { left : Tree ['t]; elem : 't; right : Tree ['t]; } | Null } class Program { static Insert ['t] (tree : Tree ['t], e : 't) : Tree ['t] where 't : IComparabl…

variantの正体

C#のenumに似たようなものらしいのですが、イマイチつかめていないのでちょっと弄ってみました。 using System.Console; variant Color { | Red | Green | Blue | Different { red : int; green : int; blue : int; } } class Program { static Print (color…

NemerleでDesign by contract

オンラインドキュメントを見てて、出来ることに気づいた。 using System; using Nemerle.Assertions; using Nemerle.IO; module Calc { [Requires(x >= 0 && y >= 0)] // 事前条件 [Ensures(value >= 0)] // 事後条件 public Add(x : int, y : int) : int { …

Bugfix

Nemerleで2/8/16進数が使えないバグが修正されたようなので、早速チェックアウトしてmakeしてみました。 def a = 0b11111111; def b = 0o377; def c = 0xff; 確かにこれらをコンパイル出来るようになってます。 ところで、.NET1.0ではNemerleのmakeが出来な…

CodeToHTML用キーワードファイル

取りあえずここにアップ。Javaを使うことは多分ないのでJavaセクションをNemerleに当てました。(^^;

はじめてのNemerleその3

予定通りGenericsについて紹介しようと思ったのですが、基本的にC#2.0と一緒なので改めて説明することはほとんどなかったりします。(^^; 以下、手抜きvector。 using System; using System.Collections; class vector<'t> where 't : IComparable { private …

はじめてのNemerleその2

昨日に引き続き、Nemerleネタで。まず、コンパイルの仕方から。Nemerleではソースファイルの拡張子に.n(例:hello.n)を使用します。 で、これをコンパイルするにはコマンドプロンプトから、 $ ncc -texe -o hello.exe hello.n このようなコマンドを実行します…

はじめてのNemerleその1

Nemerleは.NETプラットフォーム向けのプログラミング言語です。近年、オブジェクト指向言語が主流となっていますが、Nemerleはオブジェクト指向に対応していますが、それに関数型言語の特徴も併せ持ったハイブリッド言語となっています。Nemerleという名称は…