タグ

2006年7月11日のブックマーク (3件)

  • Table,Caching,Memoize,Closure,Profiler - koyachiの日記

    入力に対して決まった値を返し、入力値のレンジが広く、何度も値を取得する必要がある場合、Cなんかでは初期化時に全入力値に対する結果を保持するテーブルを生成したりします。速度重視する場合のsinテーブルとか。割と制約がシビアでない環境では、新しい入力パラメタが与えられるたびに値を保存する関数でもいいと思います。 my %cache; sub fast_sin { return $cache{ $_[0] } if exists $cache{ $_[0] }; $cache{ $_[0] } = sin( $_[0] ); }PerlのMemoizeモジュールや、JSANのMemoizeモジュールを使うとこのキャッシング機能を毎回書く必要がなくなります。Perlの場合は、 use Memoize; memoize 'sin';とするだけでsin関数にキャッシュ機構が組込まれます。 Perlでの

    Table,Caching,Memoize,Closure,Profiler - koyachiの日記
    ques9
    ques9 2006/07/11
  • Iterator,Closure v.s. OOP - koyachiの日記

    イテレータはオブジェクトインターフェースの一つで、nextメソッド等でオブジェクトが保持する次の要素を必要な時に取得することができるものです。リスト自体が巨大であったり、リストの生成に時間がかかる場合や、必要となるリストや要素についての情報がわからない場合に、必要量だけ取得できるのがイテレータの利点です。 最小値と最大値を指定されたリストを生成し、イテレータで順にその値を取得するオブジェクトの実装について考えてみます。 my $it = upto(7, 11); $n = NEXTVAL( $it ); # $n == 7 push @a, NEXTVAL( $it ) for 1..3; # @a == (8,9,10) $x = NEXTVAL( $it ); # $x == 11 # この時点で$it == undefined unless (defined NEXTVAL( $it

    Iterator,Closure v.s. OOP - koyachiの日記
    ques9
    ques9 2006/07/11
  • TL - Perlフレームワーク

    TripletaiLとは TripletaiLは、プログラミング言語であるPerlで日語のWebアプリケーションを構築するためのフレームワークです。 安全性、生産性、保守性という三つの要素を重視しており、少人数での開発に適する形で設計されています。 フレームワークはオープンソースとして、meta::cpan上で公開されています 安全性 セキュリティに配慮した設計がなされており、これに関連する機能を備えています。 テンプレートへの文字列展開やフォームへの値の埋め込み時に、自動で <> などの文字をエスケープします。 DBへのSQL実行におけるプレースホルダはもちろんのこと、CSRFを防止する機能や、セッションにおいて同一ドメイン上HTTP/HTTPS両方の領域で安全かつ領域をまたいでも安全に扱うことが可能なdoubleモードといった機能があります。 生産性 TripletaiLは日製で