monadに関するpaz3のブックマーク (14)

  • erlando - ErlangでMaybeモナドとdo記法を使う - Qiita

    ErlangでHaskell風の Maybeモナド と do記法 を使う方法。エラーチェックなどを繰り返し行うコードが簡潔に記述できる。RabbitMQの開発者が公開した erlando で実現する。 erlandoにはListモナドやStateモナドなども含まれており、もちろん自分で新たにモナドを書くこともできる。また一部のモナドではMonadPlus型も実装されており guard/2 関数などが使える。さらに、関数の部分適用を読みやすく記述できる「cut」や、関数のインポート時に関数名を変更することで名前の衝突を避ける「import as」という機能もある。 maybe(A) 型 Erlang/OTPでは処理が失敗するかもしれない関数は、失敗したことを「例外」ではなく、「戻り値」で表現する。例えば lists:keyfined/3 ではキーが見つからない場合 false を、 file

    erlando - ErlangでMaybeモナドとdo記法を使う - Qiita
    paz3
    paz3 2013/07/06
    ErlangでMaybeモナドとdo記法を使う方法。erlandoライブラリを使う。クォーテーションで囲めば'>>='関数を定義できる(ただし中置にはできない)。erlandoを使わない場合にも参考になる。
  • モナドの物理的なアナロジー

    モナドの物理的なアナロジー モナドは非常に抽象的なエンティティなので、ときには、モナドそのもの について直接考えるより、モナドのアナロジーとしての具体的なシステムを 考えるのが有用です。この方法では、物理的な直観と経験を利用して、 計算モナドの抽象的世界を再考するための洞察を得られます。 ここで展開する特殊な物理的なアナロジーは機械化された組み立てラインです。 これは、モナドに完璧に合致するものではありません。— 殊にモナド 計算の高階性ある局面の幾つかでは。— しかし、初期段階では、モナドが どのように機能するかを理解するには十分役立ちます。 Haskell のプログラムをベルトコンベヤと考えることから始めましょう。 入力はコンベヤの端に載せられ、一連のワークエリアへと運ばれます。 各ワークエリアにおいて、ベルトコンベヤ上の物品になんらかの操作が 加えられ、そしてその結果はまたベルトコン

    paz3
    paz3 2013/07/05
    ベルトコンベアをモデルにしたモナドの説明。材料をトレイに乗せる(モナド化)→Combiner(>>=)がWorker(関数)にトレイ内容を送る→結果が再びトレイに乗る。モナドを使うことでラインの組み換えが容易になる。
  • Haskell Day2012 - 参照透過性とは何だったのか

    3. 自己紹介 • @ruicc • Ruichi Kousuke • 好きな作曲家:A. Bruckner • 好きなバイオリニスト:Hilary Hahn • 好きな言語:Haskell • 爆発すればいい言語:PHP

    Haskell Day2012 - 参照透過性とは何だったのか
    paz3
    paz3 2013/01/18
    モナドに与える関数は引数とモナド内コンテクストにのみ依存→影響範囲が限定。モナドで機能を型として表現→型が設計図→設計が実装と共にずっと保守される。関数は疎結合→機能の直交化。(スライド)
  • 絵で見るモナド · eed3si9n

    2012-08-21 John Wiegley さんの “Monads in Pictures” を翻訳しました。翻訳の公開は人より許諾済みです。翻訳の間違い等があれば遠慮なくご指摘ください。 2012年8月20日 John Wiegley 著 2012年8月21日 e.e d3si9n 訳 これはモナドのチュートリアルではないし、ここには数学用語も出てこない。稿は、既にモナドを一応使えるぐらいには習った人を対象とする。視覚化することで、何のために何をやっているかが明らかになるはずだ。 関数 モナドに対する直感を得る一つの方法として関数からモナドへの抽象化をたどるというものがある。関数が何をやっているのかを簡単な絵で表してみよう。Haskell の関数の呼び出しの構文を上に、同じ演算を視覚化したものを下に置いた: 関数はある値 a を投射 (map) して別の値 b を得る。中で何が起

    paz3
    paz3 2013/01/18
    Functor(たとえばfmap)の結果の値を自動的にボックスせず、与えた関数内でボックスするとモナドになる。わかりやすい図がある。
  • Haskell とモナド - あどけない話

    今日までに理解した Haskell とモナドについて、まとめてみます。間違っているところもあると思いますので、コメントを期待しています。(_ _) Haskell の特徴 純粋関数型言語です。 参照透過性 変数は初期化できますが、一旦決まった値は変更できません。関数の返す結果は、引数の値だけで決まります。 遅延評価 データの処理は、当にデータが必要になったときに実行されます。UNIX のパイプみたいなものだと考えるといいでしょう。 Haskell にも副作用はあります。 よい Lisper は、副作用のある関数とない関数を分けて実装します。しかし、そうでない Lisper が分けてくれるとは限りません。 Haskell を使うと、副作用のある部分とない部分を必然的に分けて書くことになります。 変数の値は変更できない たとえば、有名な quicksort を例にとりましょう。 quicks

    Haskell とモナド - あどけない話
  • 第14回 関数脳のつくり方 Second Season ~モナドで悟りをひらく~

    大手SIベンダにてSEやPMやアーキテクトとして勤務したのち,株式会社豆蔵を経て,現在は合同会社シンプルアーキテクト代表社員であり,株式会社匠Business Placeのチーフコンサルタント。主に超上流のプロセスである要求開発やオブジェクト指向,アジャイル開発のコンサルタントとして活躍中。開発の現場にこだわり,開発の現場を少しでもよくしたいと日夜奮闘している。要求開発アライアンス執行委員。著書に『オブジェクト脳のつくり方』や『eXtreme Programming実践レポート』(ともに翔泳社発行。後者は共著)などがある。 Javaなど,オブジェクト指向や手続き型のプログラミングの経験はあるけれど,関数型のプログラミングは初めてという皆様のための,そして筆者自身のための「関数脳のつくり方」シリーズのSecond Season(First Seasonはこちら)。今回は「モナド」を取り上げま

    第14回 関数脳のつくり方 Second Season ~モナドで悟りをひらく~
    paz3
    paz3 2010/02/09
    ScalaによるMaybeモナドとListモナドの解説。モナドはmap, flatMap, filterのメソッドを持つ。flatMapで連結できる。
  • Monad - HaskellWiki

    The Monad class Monads can be viewed as a standard programming interface to various data or control structures, which is captured by Haskell's Monad class. All the common monads are members of it:

    paz3
    paz3 2009/11/25
    様々な言語でのモナド実装へのリンクがあります。モナドは概念なので、Haskellと切り離して考えられるのですね。
  • All About Monads モナドのすべて

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

    paz3
    paz3 2009/11/25
    モナドについての解説です。自分には難しいです。
  • Easy Monad

    8. Monad この文書では Monad について述べます。Monad は成功しないかも知れない 計算を組み合わせる手法で、探索、IO、構文解析 などに使われます。 Monad は実はそれほど難しい概念ではありません。 "Haskell は Monad を使って参照透明性をおかすことなく IO を実現している。" といううたい文句や、"Monad を理解するのは難しいかもしれない" などという脅し を気にしないで、Haskell 98 にある定義を見れば分かりやすいと思います。 上級 Haskeller は Monad を駆使して難しいことをやりますが、 それは Monad が難しいのではなく、彼らのやっていることが難しいだけです。 つまり、Monad を使うと難しいことが出来るが、Monad そのものが難しいわけではない ということです。 1. Monad は class Haskel

    paz3
    paz3 2009/11/05
    「Haskellのお勉強」のページのモナド入門。あとで読みます。
  • 「モナドは象だ」の翻訳まとめ - Fight the Future

    とてもエントリが多くの回にわたったので、まとめます。 One Div Zero: Monads are Elephants Part 1 モナドについて調べていく(7) - Fight the Future じゅくのblog モナドについて調べていく(8) - Fight the Future じゅくのblog モナドについて調べていく(9) - Fight the Future じゅくのblog モナドについて調べていく(10) - Fight the Future じゅくのblog モナドについて調べていく(11) - Fight the Future じゅくのblog モナドについて調べていく(12) - Fight the Future じゅくのblog One Div Zero: Monads are Elephants Part 2 モナドについて調べていく(14) - Fig

    「モナドは象だ」の翻訳まとめ - Fight the Future
    paz3
    paz3 2009/11/02
    ScalaでMonad。
  • Stateモナドを今度こそ理解する - Pixel Pedals of Tomakomai

    3年前に理解しようとして惨敗した*1HaskellのStateモナドの解説に、リベンジしようと思います。圏論をちょっとはかじったので、今度こそまともな解説ができるはず。 と言うことで、今回は前編です。圏論の知識は前提とはしてないですが、集合と写像にアレルギーがあるときついかもしれません。 *1:3年前の敗因は、圏をSetsだと思い込んでた上に関手を「写像を写像に移す写像」だと誤解してたことでしょうか。

    Stateモナドを今度こそ理解する - Pixel Pedals of Tomakomai
    paz3
    paz3 2009/10/31
    Stateモナドについて解説するスライドがあります。あとで勉強させてもらいます。
  • Amazon.co.jp: Pro Scala: Monadic Design Patterns for the Web: Meredith, Gregory: 本

    Amazon.co.jp: Pro Scala: Monadic Design Patterns for the Web: Meredith, Gregory: 本
    paz3
    paz3 2009/10/31
    Webプログラミングのためのパターンの本のようです。Scalaでモナド的に作るようです。
  • scat.rb:ERROR

    File not found (355). index

    paz3
    paz3 2009/10/31
    「SchemeにおけるMonad的プログラミング」を翻訳されているようです。あとで読みます。
  • 檜山正幸のキマイラ飼育記 - 世界で一番か二番くらいにやさしい「モナド入門」

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

    檜山正幸のキマイラ飼育記 - 世界で一番か二番くらいにやさしい「モナド入門」
    paz3
    paz3 2009/09/08
    読んでみましたが、頭が固いためか、まだピンときません。何か別の言語で手作業で練習してみたいと思います。
  • 1