2009-10-01から1ヶ月間の記事一覧

extlibのLazyArray

http://github.com/datamapper/extlib/blob/master/lib/extlib/lazy_array.rb なんでこんな複雑な実装になってるのか気になってた.DataMapperだとこれがよく使われてるらしいのだけど,どれだけメリットがあるのか.StrokeDBの方はもっとシンプルなんだけど…

D言語でのプロパティ

今日Twitterでのこのつぶやきから始まってこうなったので,とりあえずinitに関してだけ書いておく. D言語のプロパティ int.init とすればその型の初期値が取れるやつ.C#のdefaultは予約語らしいけど,D言語のはプロパティなのでそうじゃないというわけです…

Plan9とdmd

某所で変態達が崇め奉っているPlan9でdmd動くと色々面白そうだけど知識が全然足りない.これも今後の課題に入れておこう.優先順位は最後で(オ 追記 最近gdcの開発が再開されたので,最悪そっちの方がいいのかもと思えるようになってきた.gdc自体は最新版じ…

Ramaze supports Mustache

Mustacheというのはyharaさんの所で紹介されていた,テンプレートファイルにロジックが書けないテンプレートエンジンのことです.モジュラリティ抜群のRamazeとしてはやはりサポートすべきだろうと勝手に思ったので,パッチを書いて送ったら取り込まれました…

CLI for Bugzilla

http://github.com/ColdWind/pybugz こんなのあるのか.D言語のITSはbugzilaだし,Webで一々検索とか面倒な人は使えるかもしれない.

D言語のmodule

C++だと namespace std { void foo() {} } とかやると既存の名前空間に関数を定義できるんだけど,D言語だとどうすればいいのやら?Javaだと既存のfoo.bar.Bazでもロードされる前に挿入すれば上のようなことが出来るらしい. D言語だとmoduleがパッケージと…

コンパイルタイムリフレクション

std.range & std.algorithmについてはまた後でまとめるとして,特性に関して. module bar; struct Bar { private bool bar; } とまぁ用意して__traitsを使おうとすると import bar; void main() { Bar bar; __traits(getMember, bar, "bar"); //-> Error: s…

PhobosでJSON

std.json and std.uni WalterもAndreiも認めてるようなので,多分次のバージョンでstd.jsonが使えるようになるんじゃないかと.ちゃんと日本語とかも認識するので普通に使えそう.parseValueが再帰だけどまぁ問題になるほどネストが深くなることもないかな.…

検査例外

創るJava第三版を読んでいて出てきたけど,これってあまり必要性がわからない.検査例外をJava以外で採用している言語ってあるのか?

ユーザ定義のアノテーション

まだ先の話だけど,これが出来るようになるとリフレクションがないD言語でも普通のテスティングフレームワークとかが書ける気がする.今でも while (clazz.base !is null) { clazz = clazz.base; if (clazz is Foo.classinfo) { ... } } とかやって継承を辿…

dref

http://github.com/kazuho/cppref こんなのが出来たらしいのでD言語版作ろうと思った(dmdならDLすると一緒にドキュメントもついてくるし指定先としては困らない).一番の問題はこれみたいにw3mを使うか使わないかだけど,Windowsにもw3mはあるし問題ないか.…

プロパティの方向性

int foo() @property { return 0; } とりあえずこのコードがコンパイル自体は通るようになってる.Walter曰く「It's only half-implemented. Don't use it yet :-(」とのことなので,今のD言語ではまだ使えない(後多分@annotationは前に来るはず).ただ見れ…

ループを使わずに1から10までの総和を表示するプログラム

http://d.hatena.ne.jp/zecl/20091002/p2 http://valvallow.blogspot.com/2009/10/110.html http://d.hatena.ne.jp/shunsuk/20091002/1254486763流行っているようなのでD言語で. import std.stdio, std.range, std.algorithm; void main() { writeln(reduce…

若手の会 & Aizu.LT & SigDD

こっちで書くの忘れていた.一応感想なんかは http://blog.livedoor.jp/repeatedly/archives/1006540.html にあります.