タグ

src読むとPerlに関するhassylinのブックマーク (8)

  • Perlでモナドを学ぶ - Pixel Pedals of Tomakomai

    勉強のためにPerlでモナドを実装してみました。 免責 圏論のモナドの概念をPerlでシミュレートしようと言うエントリであって、モナドを開発にどう利用するかなどについてはびっくりするくらい言及しませんので悪しからず。 1. 圏を考える Perlのスカラ値の任意の集合を対象として、引数も戻り値も一つで副作用がないサブルーチンを射とします*1。domとcodについては、関数が正常に動作する範囲で適当にとりましょう。 * 例: 対象「文字列」から対象「整数」への射 length 2. 自己関手の表現 自己関手は、二つの写像からなります。 対象を対象に移す写像 T_object モノとしては考えますけど今回は実装しません*2。 射を射に移す写像 T_arrow 『サブルーチンを受け取ってサブルーチンを返すサブルーチン』として実装できます。 3. 自然変換の表現 関手Tから関手Sの自然変換は、対象A

    Perlでモナドを学ぶ - Pixel Pedals of Tomakomai
  • MENTA というウェブアプリケーションフレームワークをかいてみた - TokuLog 改めB日記

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

  • YappoLogs: Yacafi という軽量CGIフレームワーク書いたよ

    Yacafi という軽量CGIフレームワーク書いたよ MENTA というウェブアプリケーションフレームワークをかいてみた - TokuLog 改めB日記やらNanoA というウェブアプリケーションフレームワークをかいてみた - id:kazuhookuのメモ置き場やらと軽量CGIフレームワーク作りが流行ってるようなので昼飯った後に20分くらいで書いたよ。 Yacafi(Yet another CGI application framework interface)と言います。 http://svn.coderepos.org/share/lang/perl/Yacafi/trunkからsvn coできるけど、Yacafiはモジュール一個だけあれば動くようにしてあるのでhttp://svn.coderepos.org/share/lang/perl/Yacafi/trunk/lib/Yac

  • [Program] fizzbuzz7.gif - 2008-10-25 - 兼雑記

    なんかブックマークに golf とかいうタグがついてるのが目に入って、ゴルフなんてロクにしてないのになぁとか思って、ちょっとゴルフして1言語足してみました。具体的には Befunge 。 http://shinh.skr.jp/dat_dir/fizzbuzz7.gif 前回との差分としては、 PerlRuby のコードを融合させた方が明らかに短くなるので融合させて、 z80 をちょっとはマジメにゴルフして、 Befunge 入る隙間を適当に作ってつっこんだというような感じです。したらまだなんか空いてたので by shinh とか入れといた。 z80 と x86 を人生を賭けて縮めたらもう一個くらいなんか入るんじゃないかという気はします。 VMWare fusion でヘンだとかはまぁ直したいけどまた今度。 ソースコードとかそのへん。 http://shinh.skr.jp/dat_

    [Program] fizzbuzz7.gif - 2008-10-25 - 兼雑記
    hassylin
    hassylin 2008/10/30
     すげー
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

    hassylin
    hassylin 2008/10/20
     Class::Component
  • より自然にRubyっぽくリストを書けるモジュールを書いた - はこべにっき ♨

    PerlのARRAYをRubyのArrayっぽく扱うためのモジュールがすでに三個くらいあって大人気ですね. List::RubyLike List::Rubyish List::Enumerator こういったモジュールを使うと, my @elems = map { $_ ** 2 } grep { $_ % 2 == 0 } (0..100); my $sum = 0; for my $n (@elems) { $sum += $n; } とか書いていたコードが, # List::Rubyishの場合 my $sum = List::Rubyish->new([0..100]) ->grep(sub{ $_ % 2 == 0}) ->map (sub{ $_ ** 2 }) ->reduce(sub { $_[0] + $_[1] }); みたいな感じのメソッドチェーンで書けるようになっ

    より自然にRubyっぽくリストを書けるモジュールを書いた - はこべにっき ♨
  • Introducing Data::Valve - D-6 [相変わらず根無し]

    Introducing Data::Valve 昨日から思い立ってData::Valveというものを書いてみました。XS混じりのスロットリング用モジュールです。 Data::Throttlerでも同じような事ができるわけですが、こっちは内部が非常にごつい。しかも拡張しにくい事この上ない。アクセッサーとか全くないんだぜ? ってことでData::Throttlerとほぼ同等のAPIを持って、内部構成を完全に書き直しました。 Data::Valveは内部の基スロットリングロジックはものすごく簡単なCで書いてます。単純にスロットリング判定が行われた時間を保存したリンクドリストを格納しておいて、その数と現在時刻からのインターバルを持って計算するだけです。 ただ、キモはこの計算を行うデータ構造体をシリアライズ・デシリアライズすることによって、外部媒体にこのデータを保存して、複数プロセスどころか複数ホ

  • Fluent Interfaceって - Charsbar::Note

    こういうことなのかしらん? package Class::Accessor::Fluent; use strict; use warnings; use Sub::Install; our $VERSION = '0.01'; sub mk_fluent_accessors { my ($class, @names) = @_; foreach my $name ( @names ) { Sub::Install::install_sub({ code => sub { my $self = shift; $self = $self->new unless ref $self; if ( @_ && @_ == 1 ) { $self->{$name} = shift; } elsif ( @_ ) { $self->{$name} = [@_]; } else { return $sel

    Fluent Interfaceって - Charsbar::Note
    hassylin
    hassylin 2008/07/10
    まずはfuluent interfaceがなにかを調べてから
  • 1