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

メンテ奉行

備忘録はもともと自分がrubyの勉強のために書き散らかした奴で今見ると(そんなに進歩してないけど)これはどうよ?みたいなコードもあると思う.コメント欄の下に出てるgoogleでの検索と思われるurlを見ると,それなりに備忘録の内容目当てで来る人がいるら…

編集距離のライブラリ化

入力した単語と数万語の辞書とで総当りで編集距離を計算させてみたら,30秒以上掛かったので,cで書き直してライブラリ化してみた.同じ処理で0.7秒前後まで縮まった.繰り返し使うなら,手間は掛かってもライブラリ化する価値はあるなあ.参考にしたページ…

編集距離

レーベンシュタイン距離または編集距離で検索をするとそのものズバリなWe retire raa.ruby-lang.orgが見つかる.使い方は簡単: require 'text' p Text::Levenshtein.distance( 'hello', 'hollow') #=> 2 2007-12-18 - 新言語 Xtalを作る日記から,丁稚な日…

ウィルス疑惑

念のために全ディスクを検索中だけど…Jotti's malware scanでの検査結果: I-worm/Nuwar.Lって出るのAVGだけだし誤検出で確定なような. tccを動かすたびに,AVGを停止させているので不便でしょうがない.もちろん,アンチウィルスソフトを止めるのは自己責…

tcc(3)

まったく何も分ってないけど,適当にコードを切り貼りしたらforの中で変数を宣言できるようになった.しかしコンパイル早いなー.tccで改造したtccをコンパイルしなおして,それでテスト用のソースをコンパイルしても一瞬で終わるよ.

tcc(2)

もしかして…と思ったら,やはりこれもコンパイルできない. int main( void) { for(int i=0;i<10;i++) { printf("%d\n", i); } return 0; } ANSI C grammar (Yacc)を見ると,forの初期化部には式だけで宣言は書けないことになってる.それが標準だったのか.…

tcc

tccのnext_nomacro1を読んでいて気づいたんだけれど, int foo; int main( void) { f\ o\ o = 1; printf("foo %d\n", foo); } こんな書き方が許されていたのか… 以前にc.yを読んでいて気づいた変態的な書式 int main( void) { int i; for(i=0;i<5;i++) { for…

TCC w/o MinGW

AMAgrammar <> PROgrammer: TCCを手に入れてみた……けど……をMinGWをいれずにやってみた.動けばいいやと適当にやったのでかなり泥臭い方法になってしまった.tccのソースを読めばもう少しマシな方法が分るかも.とりあえず config.hに#define LIBTCCを追加し…

非決定性プログラム

SICP 4.3.2 - ロバの耳ではcallccを使わずに済ませたけれど,そろそろcallccを使えるんじゃないかと思って挑戦してみた.…80行もあるすごくブサイクなやつが出来た….しかもかなり使いにくい. 関西オープンソース2005発表, 非決定性計算, KOF宴会 - Journal…

遅延評価

lambdaを使えば遅延評価が出来ると知ったので,たらい回し関数でテストしてみる.たらい回し関数は青木日記 2003-03-15から持ってきた. def tarai( x, y, z ) if x <= y then y else tarai(tarai(x-1, y, z), tarai(y-1, z, x), tarai(z-1, x, y)) end end …

誰のためのデザイン?

今年に入ってから変えたこのページのテーマ,結構気に入っているんだけれど,会社で仕事中に見るのは躊躇われるね.元々,備忘録のページは仕事中に使うアンチョコとして作ったのに,これでは本末転倒ではないですか.どうしようかな.しばらくはこのままで.

1.9.0(2)

1.9ではpが返り値として引数を返すらしい.すごい便利じゃないですか. def test_1_8() ret = [1,2,3].map{|x| x * 2} p ret ret end def test_1_9() p [1,2,3].map{|x| x * 2} end いままではデバッグプリントするのに test_1_8のように書いてたのが,test_…

1.9.0

雑用にスクリプトを書いてて,こんな処理が欲しくなった. idx = %w[max abs sin cos].index{|x| x=~/\Aa/ } リファレンスにはあるのに,どうして動かないんだ!と思ったら1.9 featureか. 1.9に乗り換えようか.1.8系にバックポートしてくれないかな.てい…

デザイン変更

なんとなくデザインを変えてみた.ついでにページビューも表示するようにしてみた.こんな機能あったんだ.デザインのチェックで,ページを行ったり来たりしてる上に,気になって何度も見にきているので自分だけで20以上も踏んでる.

ラムダ計算(3.1)

一度書いたやつを書き直しました.元の式はこんびねーたv - 女子大生ぷろぐらまーなお☆ないわー Not Foundのブログ9.0から. ここが大元? i = Rambda.new("(λx. x)") k = Rambda.new("(λx. (λ y. x))") s = Rambda.new("(λx. (λ y. (λ z. ((x z)(y z)))))"…