クロージャてすと

import std.stdio;

int fill()
{
  int[100] x;
}
int delegate() mkcounter(int i)
{
  return {return i++;};
}
int main()
{
  int delegate() c1 = mkcounter(1);
  int delegate() c2 = mkcounter(3);
  writefln("%d", c1()); fill();
  writefln("%d", c2()); fill();
  writefln("%d", c1()); fill();
  writefln("%d", c2()); fill();
  writefln("%d", c1());
  return 0;
}

コンパイルして、

C:\hoge\prg\WindowsManager>counter
1
3
2
4
3

あ、これありなら色々超楽になりそうな。
ヲルさまによる色々なテストコード http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D&article_id=61016

みにか

微調整。機能追加はしてない。
http://konbu.s13.xrea.com/lib/minipsm.exe
プログラムとかソースコードとかNYSL

とかどうでもいいんだけど、あれだな。クロージャはやっぱりいいな。2.007を体験したらそれ以前のD言語には戻れない。(割と本気)

以下コード。だいぶましになった気がしたけど、今見るとそうでもなかった。変換テーブルを外部定義ファイルとか参照して色々できるようにするのが、カッコイイかな。

続きを読む

test