2006-06-01から1ヶ月間の記事一覧

プログラム言語SBF

Parsec の練習のために、プログラム言語を作りました。今の流行りに乗って、 VM で動く言語です。 VM として、ポータビリティや命令のシンプルさを考慮して、 Brainf*ck を採用しました。http://shinh.skr.jp/koneta/sbf.hs以下のコードが (let (x (getchar)…

コード圧縮

http://d.hatena.ne.jp/nuc/20060624/p2 より。'1'から'7'までの数字を一回だけ使って作れる、7文字の文字列のすべての組み合わせを出力するプログラムを、「できるだけ短く」書け。 の C 版見て、あーこれまだまだ短くなるなーと思ってやってみました。アル…

動的に型サイズを求めるスマポ

http://d.hatena.ne.jp/okzk/20060622#1150958620から。動的にサイズを調べるのは以下のようなコードはどうでしょうか。先に言っておくと冗談です。 GCC と cl.exe で確認。たぶんきっと他でもだいたい動きますおそらく。 template<class T> class smart_ptr { T* p_;</class>…

たらいべんち

たらいまわしが流行って(いつの話だ)memoがどうとかは考えず、素直な実装でコンパイル中に計算してしまって、その速度を比較してみます。D版。 template tarai(int x, int y, int z) { static if (x <= y) { enum { v = y }; } else { enum { v = tarai!(tar…

100万行を越えるエラーメッセージ

template<int x, int y, int z, bool b> struct tarai_ { enum { x_ = tarai_<x-1, y, z, x <= y>::v, y_ = tarai_<y-1, z, x, x <= y>::v, z_ = tarai_<z-1, x, y, x <= z>::v, v = tarai_<x_, y_, z_, x_ <= y_>::v }; }; template <int x, int y, int z> struct tarai_<x, y, z, true> { enum { v = y }; }; template </x,></int></x_,></z-1,></y-1,></x-1,></int>

C より Haskell の方が偉いです!

なんとなく紹介されていた PKU1519 を考えてみていました。いつも面白そうだなーと思いつつ人のを少しいじっているだけだったので、いちから考えてみました。http://d.hatena.ne.jp/Ozy/20060617#p3C で書いてたら konn さんが Haskell で書きはじめましたの…

OO度判定

昨日のネタですが、まあソースを。http://shinh.skr.jp/tmp/oo.txt実にくだらないです。YTさんのコメントを見て brainfuck 対応入れるか一瞬考えて入れなかったのを後悔しましたとさ。

bind.d

Boost.bind の D 版を作ってみました。めんどいだけであまり実装とか面白くもなかったというか、メソッドテンプレートが無いので opCall(...) を実行時に解決するというダサい解になっています。一応型チェックはそれなりにしてあるはず。http://shinh.skr.j…

(EOO

題はかっこいいOOと読ませるつもりらしいですよ。http://d.hatena.ne.jp/ABA/20060614#p1 じゃあOO的にかっこいいってのは、何が評価軸なんだろ? なんなんでしょ、と思いました。やはり可読性とかもあると思うので、いくつか軸があって、可読性が高いか否か…

strite.cc

strcpy(dst, src);じゃなくて copy(src, src+strlen(src)+1, dst);を使うのはなんかおかしいと思う。まず +1 を忘れるとか。いやそれは私が忘れてただけなんですが。そんなことはどうでも良くて、 strlen を呼んでるのがおかしい。なんで文字列をコピーする…

データとかの分離とかのアルゴリズムとかの

alias template で以下のように書く方がステキでした。 template getDX(alias A) { static if (is (typeof(A()))) alias typeof(A()) rettype; else alias typeof(A) rettype; rettype getMemberDX() { return A; } } class Meteorite{ float x; float y; fl…

パスカルの三角形

が流行っているらしいのですいつの話だ。D で書きました。残念ながらコンパイルが通りませんが結果オーライ。改行とかできないのでぜんぜん三角形になりません。 i@u ~/test/d> dmd pascal.d pascal.d(55): static assert (0) is false, "[ 1 ] [ 1 1 ] [ 1 …

データとかアルゴリズムとかポリシーとかの分離とか

最近のhttp://d.hatena.ne.jp/w_o/20060613#p2のあたりは私も色々考えたことがあるのですが、おっしゃってる通り C++ だと template の限界が来るのと、あと、コンパイルおっせー、っていう理由でまぁ色々 GameObj から継承したらいいじゃんとかそういう日和…

Assam2

Webの方がIRCのログで埋まるとAssamが連投しはじめるというバグがあったので修正しておきました。http://d.hatena.ne.jp/shinichiro_h/20060611#1149968513

convolution.d

id:rinset さんの D で STL ネタなんかを見てて触発されて、今の D って関数プログラミングサポートを C++ 以上にできる部分もあるんでないかなぁ…とか思って Haskell の標準ライブラリを実装していってみました。ふと関数合成で止まったんですが、試行錯誤…

sdmkun-1.5.8

2年越しくらいのリリースだそうです。http://shinh.skr.jp/sdmkun/WindowsXP で user/ 以下の弾幕で落ちるバグを修正。報告いただいた方々、ありがとうございました & 遅れてすいません。isspace の実装が XP でたぶん変わった、っていうのが理由で tinyxml …

Assam2

http://shinh.skr.jp/chat/kocha/assam2.rbIRC と Comet な Web チャットであるところの紅茶をブリッジする Assam ですが…って、前回の Assam ははてなでアナウンスしてないことに気付きました。まぁいいか。ええとこれまでのあらすじ: サーバ上で、 IRC の…

SDL_freetype.d

SDL_freetype の D ポーティングを作りました。 .dll と OMF のインポートライブラリも付属させておきました。http://shinh.skr.jp/d/porting.htmlついでに、というかこっちの方がめんどかったわけですが SDL_freetype を autotoolize しておきました。今後…

思い出したように backtrace phobos

http://shinh.skr.jp/d/backtrace.zipDMD-0.159 にあわせて更新しておきました。

スパム業者様向けアドレスのそれから

http://d.hatena.ne.jp/shinichiro_h/20060510#1147250887welcome@ の方にはメールが来たのに spam@ の方には来てません。私は必要とされてたり女性にもてもてラッキーボーイだったりそんな感じみたいです。

なにかあれば下記メールアドレスへ。
shinichiro.hamaji _at_ gmail.com
shinichiro.h