タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

monadに関するkoko1000banのブックマーク (3)

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

    ListモナドとMaybeモナドに続いて、今日はIOモナドのお勉強をしてみます。 簡単な解説 IOモナドは実質的にStateモナドなので、こちらとかこちらとかを読んで下さい。 ただし、状態は「世界」となります。世界によって値は異なり、新しい世界(副作用が施された世界)を返します。 実装 Stateモナドと同じ定義をしました。 my $io_monad = Monad->new( T_arrow => sub { my $arrow = shift; # A -> B return sub { # TA -> TB my $tx = shift; # TA return sub { # TB my $world = shift; my ($value, $new_world) = $tx->($world); return $arrow->($value), $new_world; }; }

    Perlでモナドを学ぶ - IOモナド編 - Pixel Pedals of Tomakomai
  • 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
  • Route 477 - gemcutterの使い方まとめ (2009年秋)

    ■ [haskell] モナドって結局なんなの 社内勉強会でモナドについて発表しました。分かった気がするたびにすぐに手からすりぬけてしまう、それがモナド…! 追記: モナドそのものが何なのかとか考えないほうがいいんじゃないですかね! [Twitter / いーぐるとまとより引用] まさにその通りだと思います(笑)。IOの使い方、Maybeの使い方、Stateの使い方などを押さえておけば、 中がどうなってるかなんて知らなくても大丈夫。 でも、モナドの持つ「なんか秘技がありそうな感じ」が、中を覗いてみたくさせるんですよね。 この、どこまで掘っても自分の知らないことが出てくる感じがHaskellの魅力なのかも。 Haskell の当にすごいところは、「なぜなに」を問いかけることでいつまでもプログラマが成長できるところにある。 [ふぁぼったー / ikegami__より引用] 一問一答 Q. モ

    Route 477 - gemcutterの使い方まとめ (2009年秋)
  • 1