タグ

2009年4月6日のブックマーク (4件)

  • Perlで書く [まぐまぐ!]

    ===================================================================== Perlで書く 2009.04.05 Vol.231 [WAZA]入力文字列の履歴を保存 http://www2u.biglobe.ne.jp/~MAS/perl/ ===================================================================== ●入力文字列の履歴を保存 Term::ReadLineモジュールを使うと入力文字列の履歴を保存して、 カーソルの上下で過去に入力した文字列を簡単に呼び出せるようにできます。 ESCキーで入力途中の文字列をクリアするのもできるようになります。 --------------------------------------------------------

    Perlで書く [まぐまぐ!]
    kzfm
    kzfm 2009/04/06
  • Aho Corasick 法 - naoyaのはてなダイアリー

    適当な単語群を含む辞書があったとします。「京都の高倉二条に美味しいつけ麺のお店がある」*1という文章が入力として与えられたとき、この文章中に含まれる辞書中のキーワードを抽出したい、ということがあります。例えば辞書に「京都」「高倉二条」「つけ麺」「店」という単語が含まれていた場合には、これらの単語(と出現位置)が入力に対しての出力になります。 この類の処理は、任意の開始位置から部分一致する辞書中のキーワードをすべて取り出す処理、ということで「共通接頭辞検索 (Common Prefix Search)」などと呼ばれるそうです。形態素解析Wikipediaはてなキーワードのキーワードリンク処理などが代表的な応用例です。 Aho Corasick 法 任意のテキストから辞書に含まれるキーワードをすべて抽出するという処理の実現方法は色々とあります。Aho Corasick 法はその方法のひと

    Aho Corasick 法 - naoyaのはてなダイアリー
    kzfm
    kzfm 2009/04/06
  • Moose::RoleはJavaのInterfaceなんかじゃない - Pixel Pedals of Tomakomai

    Moose::RoleはJavaのInterfaceと似たような物だと思ってたんですが、大きな誤解でした。 モダンPerlの世界へようこそを読んで、Moose::RoleはTraits: Composable Units of Behaviorの概念の実装らしいことがわかったので、この論文を読んでみました。*1。非常に面白い内容でした。P.12 の a) と b) を見るだけでも、この概念の面白さが伝わるんじゃないかと。要は、指定した振る舞い(requires)から新しい振る舞い(provides)を作るものが、Traitsってことです。(ただし、ここで言う振る舞いにはアクセサを含みます。) 誤解していたこと Moose::RoleをTraitsとして見なすとすれば、JavaのInterfaceの性質である以下の2点は誤解です*2。 Moose::Roleは、単なるインタフェース(API)

    Moose::RoleはJavaのInterfaceなんかじゃない - Pixel Pedals of Tomakomai
  • Moose::Roleのメソッドの競合 - Pixel Pedals of Tomakomai

    再びTraits: Composable Units of Behaviorのネタです。 Moose::Roleを使った場合、メソッドの優先順位は 自クラス → Role → スーパークラス ... となりますが、ここで Role だけは複数持てるため、競合がありえます。 以下のTaxとTotalの二つのRoleは、どちらもtotal_priceを持っています。 # 価格から税金計算 package Tax; use Moose::Role requires 'price'; sub tax { my $self = shift; return $self->price * 0.05; } sub total_price { my $self = shift; return $self->price + $self->tax; } no Moose::Role; # 単価から合計計算 pa

    Moose::Roleのメソッドの競合 - Pixel Pedals of Tomakomai