タグ

2006年1月11日のブックマーク (2件)

  • naoyaのはてなダイアリー - Perl のクロージャ

    いつもお世話になってるあの人とかあの人とかが山口家の逆襲->perl-解説->クロージャというクロージャの解説ページをブックマークしてるのをきっかけに、 Perl のクロージャについて自分もちゃんと理解できてるのかというのを考えてみましたが、どうも微妙です。 クロージャについて、何でいまいち理解しきれてない感じがあるのかというと、クロージャがどういうものであるかは知ってるけど、クロージャをどういう時に使うと良いのかが具体的にあれとこれという感じで思い付かないからなのではないかと思った。 なので、Perl でクロージャを使ってる実装とかを見て、どんなときに使われるものなのかをリストアップして理解を深めてみよう..のコーナーです。 クラスにデータを保持するためのクロージャ 僕がぱっと思いついたのは Class::DBI の中で使われている Ima::DBI におけるデータベースハンドラのキャッ

    naoyaのはてなダイアリー - Perl のクロージャ
    drk7jp
    drk7jp 2006/01/11
    クロージャーのお話
  • Tociyuki::Diary - perlでのクロージャの3パターン

    id:naoya さんが Perl のクロージャの使い道を考えておられるようです。便上して、私が良く使う、3つのパターンを紹介してみます。なお、単なるコード・リファレンスとしての使い方は除外して付随するコンテキストが意味をもつクロージャの場合に限ります。 (2006年2月14日修正 use Fcntl のパラメータに :DEFAULT が抜けていたので追加しました。) コールバック・パターン イテレータにクロージャを渡して、イテレータの中から繰り返し呼び出してもらってコンテキストに副作用を及ぼす使い方です。クロージャの使い方の中でも最も自然に使えるものだと思います。以下、Ruby のブロック呼び出しっぽくコード・リファレンスを $yield パラメータに渡すことにします。へそ曲がりに BBS の CGI コード用に flock による排他ロックを例にしてみます。 package Mutex

    Tociyuki::Diary - perlでのクロージャの3パターン
    drk7jp
    drk7jp 2006/01/11
    クロージャーのお話