タグ

monadに関するTaKUMAのブックマーク (10)

  • 【ScalaMatsuriセッション当選御礼】ドワンゴ秘伝のトランザクションモナドを解説! - Qiita

    このたびはScalaMatsuriのセッションに投票していただき、ありがとうございました。 今回はそのScalaMatsuriのセッションで発表予定の内容の一つであるドワンゴ秘蔵のトランザクションモナドについて解説したいと思います。 このトランザクションモナドは基的な機能だけなら30行ほどの短いコードで記述できてしまうのですが、なかなか説明が難しい代物でして、 ScalaMatsuriの自分の発表時間内に聴衆のみなさんに理解していただくのは難しいだろうということで、先に解説記事を書くことにしました。 このトランザクションモナドは作者の名前から通称Fujitaskと呼ばれているのですが、作者の方は周りから「天才」と言われてまして、彼は常人が思いつかないようなコードを書かれるんですね。 Fujitaskは短いながらも、モナドと、サブタイピング(変位指定)と、アドホックポリモーフィズムの三つの

    【ScalaMatsuriセッション当選御礼】ドワンゴ秘伝のトランザクションモナドを解説! - Qiita
  • IOモナドとHaskell の最も単純なイメージ | tnomuraのブログ

    抽象的な記号を扱うときに大切なのは、それについての何か具体的なイメージを持っていることだ。 例えば集合のイメージなら丸い輪のなかに色とりどりのおはじきが入っているところを想像するし、関数のイメージは、二つの集合の要素のおはじきを糸で結んだ物が、おはじきの数だけあるところをイメージすると分かりやすい。 このイメージモデルを使えば、写像 f : A -> B が全射なら、集合Bのどのおはじきをつまみあげても、その端に集合Aのおはじきが付いてくるし、単射なら、集合Aのおはじきを二つ引っ張ると、必ずBの違うおはじきが引っ張られる。 全単射なら、集合Bのどのおはじきにも集合Aのおはじきはつながれており、集合Bの違うおはじきに対しては集合Aの同じおはじきが付いてくることはない。もしそうでなければ、集合Bの二つのおはじきにひとつの集合Aのおはじきがつながっていることになり、写像の条件を満たさないし、集合

    IOモナドとHaskell の最も単純なイメージ | tnomuraのブログ
  • Monad (functional programming) - Wikipedia

    In functional programming, a monad is a structure that combines program fragments (functions) and wraps their return values in a type with additional computation. In addition to defining a wrapping monadic type, monads define two operators: one to wrap a value in the monad type, and another to compose together functions that output values of the monad type (these are known as monadic functions). G

    Monad (functional programming) - Wikipedia
  • Perlの駱駝のこぶにはMonadも入ってる : 404 Blog Not Found

    2006年04月20日00:29 カテゴリLightweight Languages Perlの駱駝のこぶにはMonadも入ってる PerlLambda Calculusが入っているというのは以前何度か紹介した通りだが、実はMonadも入っているのである。そして、皆さんも知らない間に使っているのである。 檜山正幸のキマイラ飼育記 - 世界で一番か二番くらいにやさしい「モナド入門」 「なら、予備知識ゼロでモナドの説明をしてやろうじゃねーか」と。 それでは、世界で一番Monadが簡単に使える言語(0番はPerl6!)での実例をいくつかお見せする。 まずは一番簡単な例から。 use strict; use warnings; package Tie::Verbose; use Tie::Scalar; use base 'Tie::StdScalar'; sub TIESCALAR{ my $

    Perlの駱駝のこぶにはMonadも入ってる : 404 Blog Not Found
  • 檜山正幸のキマイラ飼育記 - 世界で一番か二番くらいにやさしい「モナド入門」

    気まぐれと偶然となりゆきで、ここ2,3回はモナドを話題にしました。googleで「モナド」を引いてザッと眺めると、「モナドはむずかしいー」とか「モナドで挫折した」みたいな雰囲気が感じられて、説明芸人の血が少し騒ぎましたね。「なら、予備知識ゼロでモナドの説明をしてやろうじゃねーか」と。 タイトルはだいぶ煽っちゃった…… けど、ハッタリじゃないつもり…… けど、実際はどうかな? ※印刷のときはサイドバーが消えます。 内容: とりあえず、あたりさわりなくモナドの来歴を紹介する こんな課題を考えてみよう:副作用付き計算 カウントアップする関数達 カウントアップしたい意志を戻り値で伝える それでは、いったい誰がカウントアップをするのだ 関数の引数の型をCountup型にまで拡張する そして、これがモナドだ とりあえず、あたりさわりなくモナドの来歴を紹介する 今からここで説明する「モナド(monad)

    檜山正幸のキマイラ飼育記 - 世界で一番か二番くらいにやさしい「モナド入門」
    TaKUMA
    TaKUMA 2010/12/13
    モナドが少し分かった気になった。
  • Monadius - a scientist's toy box

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • 檜山正幸のキマイラ飼育記 - JavaScriptによるテンプレート・モナド、すっげー簡単!

    先週書いたエントリー「圏論やモナドが、どうして文書処理やXMLと関係するのですか?」の内容を実際に確認するためのJavaScriptプログラムを書いてみました。 3つの関数を含み、全部で12行のライブラリです。 /* templ-process.js */ function processTemplate(templ, con) { var a = (templ.replace(/\}/g, '{')).split('{'); for (var i = 0; i < a.length; i++) if (i%2 == 1) a[i] = con(a[i]); // コンテキストconは関数 return a.join(''); } function processContext(con1, con2) { return function (k) {return processTemplat

    檜山正幸のキマイラ飼育記 - JavaScriptによるテンプレート・モナド、すっげー簡単!
  • IOモナドとHaskell の最も単純なイメージ | tnomuraのブログ

    抽象的な記号を扱うときに大切なのは、それについての何か具体的なイメージを持っていることだ。 例えば集合のイメージなら丸い輪のなかに色とりどりのおはじきが入っているところを想像するし、関数のイメージは、二つの集合の要素のおはじきを糸で結んだ物が、おはじきの数だけあるところをイメージすると分かりやすい。 このイメージモデルを使えば、写像 f : A -> B が全射なら、集合Bのどのおはじきをつまみあげても、その端に集合Aのおはじきが付いてくるし、単射なら、集合Aのおはじきを二つ引っ張ると、必ずBの違うおはじきが引っ張られる。 全単射なら、集合Bのどのおはじきにも集合Aのおはじきはつながれており、集合Bの違うおはじきに対しては集合Aの同じおはじきが付いてくることはない。もしそうでなければ、集合Bの二つのおはじきにひとつの集合Aのおはじきがつながっていることになり、写像の条件を満たさないし、集合

    IOモナドとHaskell の最も単純なイメージ | tnomuraのブログ
  • Haskell/Understanding monads - Wikibooks, open books for an open world

    There is a certain mystique about monads, and even about the word "monad" itself. While one of our goals of this set of chapters is removing the shroud of mystery that is often wrapped around them, it is not difficult to understand how it comes about. Monads are very useful in Haskell, but the concept is often difficult to grasp at first. Since monads have so many applications, people often explai

  • モナドのすべて Haskell におけるモナドプログラミングの理論と実践に関する包括的ガイド

    モナドのすべて Haskell におけるモナドプログラミングの理論と実践に関する包括的ガイド Version 1.1.0 このチュートリアルは、モナドの概念とその関数プログラミングにおける応用に ついて、初中級の Haskell プログラマにわかりやすく、利用価値があるような 解説をすることを旨としています。読者は Haskell になれていることを前提と しますが、モナドに関する経験は要求していません。このチュートリアルは、多 くの題材をカバーしています。後半のセクションでは、前半の題材をよく理解し ていることを前提とします。順をおって、モナドプログラミングを例示するため のサンプルコードがたくさん用意されています。一読で、すべての題材を吸収し ようというのはお勧めできません。 このチュートリアルは 3 つの部分で構成されています。最初の部分は、 関数プログラミングにおけるモナドの基

  • 1