perl

遅延リスト

やっとメインエベントーに来た気分。基本的にlambdaができればどんな言語でも遅延はできるのだけれど、最終的にはすべて基本式に還元できる"There're no magics around there"なLisp系と違ってperlとかrubyとかは結構魔術が氾濫しているので癖があって面白い…

ファイルハンドルとイテレータ

たしかに。ファイルハンドルってイテレータだね。 あまりに馴染み過ぎていて意識してなかった。イテレータとのファーストコンタクトは C++のvector<>が最初だと思い込んでいたよ。

FUNCTIONAL VERSUS OBJECT ORIENTED PROGRAMMING

が面白かった。どちらも目標は re-useなんだけど、OOは文字通りモノを主役にしているので、基本的に設計も実装も重い。でも、抽象度が高いので、一度「世界」を決めてしまえば、あとは楽チン、素直に書けるし、プログラマ脳が無くてもすばらしい設計ができる…

Tower of Hanoi

尊敬する友人が「Higher Order Perl」を買って読んでる、という話を聞いた。僕はHOPは「なんとなくめんど草そー」というか難しそうだったので避けてたんだけど、いい機会だから勉強してみようと買ってみる。こないだとどいた。最初と2つ目はすげー単純な10…

Test::Differences::Color

新しいマシンにTest::DifferencesをインストールしようとCPANシェルから install Test:: したら見つけた。間違ってる箇所に色つけてくれるだけなんだけど、ものすごいパタン数が多いとき助かる。 使い方はTest::Differencesと置き換えるだけ。 use Test::Dif…

勘違い

自分が頭わるいのはわかってるつもりだったが、 my $is_digit = '^-?\d+$'; となっているのを思わずクロイスタだと思い込んでずうっと「なんじゃこの表記」と悩んでいた。中途半端な僕。

文字列をn文字ずつに分割する

hexファイルやmotファイルとかでチェックサムとる為に、16進文字列を2文字ずつに区切って加算するってやつ。 Perl perlなら listコンテキストに正規表現置いて quartz:pts/3% perl -E 'foreach $i (shift =~ /../g) { $sum += hex($i); } say sprintf "%x", …

(??{ code })

やっぱりPerlの正規表現ってすごいというか訳わかんない。。 404 Blog Not Found:regexp - にはネストした表現は出来ない perlre読んでみても (?>pattern) 独立した部分正規表現?? (??{ code }) 延期された部分正規表現?? なんだけどコードいじってみて…

Math::WalshTransform

ふと圧縮回路の話で「DCTとかは複雑になるので回路化しません」とか言われた瞬間に、むかーし、どっかの雑誌で読んだ「うぉるしゅあだまーる変換」なるものを思い出す。んで、これどーよ?とついうっかり言ってしまったので調べることになる。 調べてみると…

my, localの件

my と local のサンプル http://d.hatena.ne.jp/amachang/20080110/1199946810やっぱりこの人はすごいって思う。わからないことがあると何でも体当たりでどんどん吸収していく。 #ちょっと仕事で詰まったくらいで一年近くつぶれまくっていた自分とすごい違…