2009-03-01から1ヶ月間の記事一覧
メモ。コンテキストによって動作が変わるもののうち、忘れそうなもの。 (こういうのってレフトコンテキストとか呼ぶんでしたっけ)
思いつきメモ。 class Hoge { static interface Expr {} static class Add implements Expr { protected Expr left; protected Expr right; } static class Sub implements Expr { protected Expr left; protected Expr right; } static class Value impleme…
メソッドの型推論エンジン作ってて、そのテストケースの洗い出し中。 Java言語仕様(第3版)の15.12.2.7 Inferring Type Arguments Based on Actual Argumentsを私なりに解説してみようと思います。理解してしまえば、そんな実装が難しいものではありません。…
今回はちょっと難易度高め。 メソッドの型推論にちょっとした穴を見つけたので動作確認してたら動きが異なりました。捕捉変換に関する覚え書き - しげるメモの概要をつかんでないと何言ってるか分からないかもしれません。
まじめにJavaの型推論書いてるのでメモ。capture-#xとか分かるようになるかも。 レビューに付き合ってくださる方は Java SE Specifications からPDFをダウンロードしておくとよいかと*1。 *1:リンク貼るのが面倒になった
List<null>型を作れないか考えてて全然関係ないこと思いついた。 void f() { String a1 = id(null); // ok String a2 = id(id(null)); // error String a3 = id(a3 = id(null)); // ok } <T> T id(T t) { return t; } 「制約 null << T のとき、Tに課せられる制約」を</t></null>…
Java言語仕様はまとまってなくて情報が点在している気がする。ということでメモ。
じぶんめも。
と考え中
風邪引いた。http://d.hatena.ne.jp/nowokay/20090308 をみてて思ったのですが、id:SiroKuro さんが議論していたことは前提 クラスの定義がまずある 任意のクラスの定義Dに対し、型type(D)が定義される 任意のクラスの定義Dに対し、クラスclass(D)が定義され…
「クラスは型である」は間違いである - SiroKuro Pageを読んで少し考えてみた。とりあえず、私のボキャブラリでは「値」がないと型を説明できなかった。まずは、値と型の関係を定義する。 すべての値は型をもつ 型はその値に対する操作に制約を課す 型はその…