Haskellでは,グローバル変数の使用による副作用の発生を防ぐため,グローバル変数として使える可能性のある機能は,IOモナドやSTモナドといった特定のモナドでしか利用できないようになっています。しかし,ときにはグローバル変数に頼りたくなることもあるで... 続きを読む
One handy use of the reader monad is to build up a program that has a single external dependency which can be provided at the appropriate time. In Scala a reader might look something like this: trait Monad[A, F[_]] { def map[B](f: A => B): F[... 続きを読む
Haskell 最近Haskellerの間でFreeモナドが熱いです。 Haskellで悟りを開いた人がFreeモナドで再び悟りを開いたりして、なんかよく解らないけど凄いことになっている今日このごろですが、すっかり乗り遅れていました。どうも、貴女のちゅーんです。 で、皆こぞっ... 続きを読む
Dismiss Octotip: You've activated the file finder by pressing t Start typing to filter the file list. Use ↑ and ↓ to navigate, enter to view files. 続きを読む
Freeモナドはすごい。 Haskellを書いていて、「特殊化された処理を記述するモナドが簡単に作れたら便利だろうなー」と思ったことはないだろうか?簡単に作れるのである、そう、Haskellならね。 これが、純粋なFreeモナドの定義である。 data Free f a = Pure a ... 続きを読む
1 モナモナ言わない モナド入門 第二版 2012.10.26 山本和彦 2 お品書き 統一理論と大統一理論 コンテナの力の階層 内包表記 3 Q) なぜモナドが理解できないのか? A) 抽象的な概念だから 4 Q) 抽象の壁を突破するには どうすればいいのか? A) まず具体例を見... 続きを読む
In Functional, JavaScript, Metaprogramming on 6 March 2011 with no comments Following on from my introduction to monads in JavaScript, and before I get into how they apply to asynchronous programming, I’d like to take a quick detour to impro... 続きを読む
発端 モナドの正体が分かると、 次はモナドを実装してみたくなるものです。 という訳で試しに Python でモナドを実装してみましょう。 別にどんな言語でも構わないのですが、 クロージャや部分適用が簡単に使えない言語では本質的でないところで苦労する羽目に... 続きを読む
Private Gist All pages are served over SSL and all pushing and pulling is done over SSH. No one may fork, clone, or view it unless they are given this private URL. Every gist with this icon () is private. Public Gist Anyone may fork, clone, o... 続きを読む
"Free" とは何なのか… 得体のしれない Free monad、ヒントになる貴重な keyword がココに… 続きを読む
Stackless Scala With Free Monads R´unar ´Oli Bjarnason runarorama@gmail.com Abstract Tail call elimination (TCE) in the Scala compiler is limited to self-recursive methods, but tail calls are otherwise not eliminated. This makes functions co... 続きを読む
前回(第11回)の名古屋scala勉強会の前半はfor式を肴にモナド三昧。『ふつうのHaskell』を発売直後*1に買ったものの途中で投げ出した自分はやっぱりチンプンカンプン。でもまぁチンプンカンプンなりにいろいろ教えてもらったので、それを頼りになんとかモナドの... 続きを読む
Haskellこれは、Monad でつまづいた Haskeller のための Monad 入門です。Monadとは何ですか?Monad とは、単なる型クラスの一つです。難しいという風評もありますが、それ以上でもそれ以下でもありません。この型クラスのメソッドは、return と >>= です。 cla... 続きを読む
「モナドは象だ(Monads are Elephants)」日本語訳¶ この文章は、以下の記事の翻訳です。 Monads are Elephants: http://james-iry.blogspot.com/2007/09/monads-are-elephants-part-1.html http://james-iry.blogspot.com/2007/10/monads-are-elephants-part-2.... 続きを読む
モナドって結局何なのよ?¶ Haskell を勉強しようとすると必ず「モナド」ってのが出てきます。困ったものです。数学とか圏論とか関係があるらしくって、何が書いてあるんだか分からなくって嫌になってしまいます。でもね、Haskell って凄いらしいじゃないですか... 続きを読む
Scala界の関数型プログラミング一派を代表する論客の一人、@djspiewak が 2010年に書いた "Monads Are Not Metaphors" を翻訳しました。翻訳の公開は本人より許諾済みです。翻訳の間違い等があれば遠慮なくご指摘ください。 2010年12月27日 Daniel Spiewak 著 2... 続きを読む
■ HaskellのモナドIO 「Haskell : モナドはややこしい - lethevert is a programmer」ですか 「酒井さんのコメントの一言で終了!」と片づけてしまうには惜しい面白い問題なので少し考えてみました. アクション Haskellでは同じ有効範囲内(スコープ)の字面が... 続きを読む
"Monads are Trees with Grafting" を訳しました いろんなところで言いふらしてましたが、もう少しぐぐりやすいところにあった方がいいかなというのと、コンテキストをちょっと書いておいた方がいいだろうと思ったので、ここにも書いておきます。 Monads are Tr... 続きを読む