langsmith:89
From: Nobuo Yamashita <nobsun sampou.org>
Date: Thu, 15 Jul 2004 01:50:40 +0900
Subject: [langsmith:89] Re: 強い型の言語とクロージャ
> > 前者の記法と、後者の記法って対立する概念 > > なのでしょうか? > > 対立するかどうかはわかりませんが、両立できるとしても、かならずしも両方 > あった方がいいとはかぎらないのではないでしょうか。 > ですので、両者(あるいはもっとよい方法があれば、それも含めて)の得失につ > いて考えたいと思っています。 > # 前のメールの後者については、記法はあまり深く考えてなかったので、もっと > # よい記法があるだろうと思います。 C# らしい記法ということを無視して言ってしまいますが,たとえば, 整数と文字列を引数にとり真偽値を返す関数(クロージャ)の型を, (int,string) x bool (int,string) -> bool とか表現するのはどうですか? > これを見て、いつもCで関数ポインタを受け取る関数を書く・読む時に、typedef > してないと書きにくい・読みにくいと感じるのを思い出しました。 typedef (int,string) -> bool Foo; Foo afun; afun = new Foo (lambda (i,s) { ...})); というのはどうでしょう. > 型があるとどうしても記法が複雑になるので、省略できた方がうれしいとはかぎ > らないのではないでしょうか。 > > ただ、クロージャを生成してメソッドに渡す側では、型を省略できるとうれしい > 気がします。 > > たとえば、 > > Bar(new delegate bool(int i, string s){ > ... > }); > > これは、Barが要求する型からクロージャの型を推測できるので > > Bar(new delegate { > ... > }); > > と書くだけでよいことにすることもできますよね。 > その代り、オーバーロードの制約は増えますけれども。 おっ.型推論機構がはいるのですね.(^o^) それなら, afun = new (lambda (i,s) {...}); とかも可能になるかも. --nobsun -- ML: langsmith quickml.atdot.net 使い方: http://www.atdot.net/~ko1/quickml
76 2004-07-13 12:42 [mogami brain.riken.g] 変更可能なclosure変数、対、static変数 77 2004-07-13 13:42 ┣[nobsun sampou.org ] 78 2004-07-13 15:07 ┣[maeda-langsmith atus] 80 2004-07-13 19:58 ┃┣[mogami brain.riken.g] Re: 変更可能なclosure変数、対、sta 81 2004-07-14 01:52 ┃┗[shugo ruby-lang.org ] 強い型の言語とクロージャ 84 2004-07-14 15:02 ┃ ┣[takuo aya.or.jp ] 86 2004-07-14 23:32 ┃ ┃┗[shugo ruby-lang.org ] 85 2004-07-14 20:52 ┃ ┗[randy mvd.biglobe.ne] 87 2004-07-14 23:59 ┃ ┗[shugo ruby-lang.org ] 88 2004-07-15 00:04 ┃ ┣[shugo ruby-lang.org ] -> 89 2004-07-15 01:50 ┃ ┗[nobsun sampou.org ] 90 2004-07-15 11:04 ┃ ┗[shugo ruby-lang.org ] 79 2004-07-13 14:43 ┗[matz ruby-lang.org ]