タグ

Monadに関するatm_09_tdのブックマーク (6)

  • Simplifying Monads in Scala - DZone

  • JavaでMonadをはじめからていねいに :: Igreque -> Info

    JavaでMonadをはじめからていねいに by Yuji Yamamoto on August 28, 2016 「モナドについてSwiftで説明してみた」という記事などで指摘されているように、プログラマー向けにMonadを説明した記事はサンプルがHaskellで書かれていることが多いので辛いですよね。 HaskellではMonadは「ないと文字通りプログラムが書けないぐらい」大事なもので、入出力処理や例外処理、ダイナミックスコープのシミュレーション、非決定計算など、普通の関数では難しい、非常に様々な機能の実装に使用されています。 その一方、MonadはC言語のポインターに並んでHaskellを学ぶ上での障害である、なんて言われたりもするとおり、他言語ユーザーからHaskellを敬遠させる大きな要因の一つともなっています。 そんな悲しい現状を少しでも改善するために、上記の記事を参考にしつ

  • モナドの驚異 | matarillo.com

    2019-03-22 07:06:19 Wes DyerのBlog “Yet Another Language Geek”に、モナドに関する記事が投稿されていたので、訳してみる。 (追記)Mike Hadlowのブログ記事も、ほぼ同じような内容を扱っている。 モナドの驚異 原文 「継続」という単語を聞くと目がどんより曇ってしまうとするなら、「モナド」という単語を聞けば心が麻痺してしまうことになるでしょう。だからこそ、モナドに対してもっと聞こえのいい呼び方を考えようとしている人がいるのでしょう。たぶん。 最近、プログラミング言語理論においてモナドは有名人です。モナドはいくつものブログの表紙を飾り、さまざまなものと比較されていました。果物箱から果ては恋愛まで。モナドを理解する経験によって、痛 気持ちいい 心地 になるんだ、と、オタクたちは至る所で叫んでいます。 継続と同じように、モナドは噂に聞

  • 絶対に理解出来ないモナドチュートリアル - konn-san.com

    世の中には、恐しい数のモナドチュートリアルがあって、それぞれモナドは象だとか、いや接ぎ木だ とか、プログラマブル・コンテナだとか、プログラム可能なセミコロンだとか、色々な説明がなされている。「モナド チュートリアル」で検索すれば、他にも色々に絵解きされた有象無象のモナドが大量に引っ掛かる。そうそう、モナドは単なる自己関手の圏におけるモノイド対象だよ。何か問題でも?なんてのもあったな。 この記事の目的は別に、こうした既存のモナドチュートリアルを「間違ってる!」とか「わかるわけねーよ!」といって貶そうという訳ではない。実際、既に幾多書かれているチュートリアルの中でも、僕の云いたいことと殆んど同じようなことが書かれているものは沢山ある。 では、上の膨大なリストの末尾にまた一つ「わかりやすい比喩」を付け足そうというのか?というとそういう訳でもない。そうそう、モナドは比喩ではないというチュートリアル

  • モナドとはモナドである - モナドとわたしとコモナド

    この記事を読む前に、絶対に理解出来ないモナドチュートリアルに一度目を通してみてほしい。モナドを理解していく上で、とても重要なことが書かれている。 改めて言おう、モナドはモナドだ。コンテナだとかプログラマブルセミコロンだという説明では、モナドのすべてを正確に表せるとは言い難い。では、モナドを過不足なく説明できる、モナド以外の言葉はあるのか? 実は、モナドを表現し、かつモナドで表現される言葉は存在する。その一つは手続きである。手続き型言語の「手続き」だ。 手続きとは何か 手続きは結果を持つ おおよそすべての手続きは何らかの結果を持つ。Haskellの()、C言語のvoid、PythonのNone、Rubyのnilなども結果の一種だ。結果が出ないとしたら、そのプログラムは停止しないか、途中で異常終了するだろう。 手続きには最小単位が存在する 処理系が扱っている以上、手続きが際限なく分解できるとい

    モナドとはモナドである - モナドとわたしとコモナド
  • 「JavaScriptでの非同期関数合成」を継続モナドで - terazzoの日記

    お題: 複数個の関数があって、関数を呼び出した結果を使って関数を呼び出して…っていうのを1個の関数にします。 JavaScriptでの非同期関数合成 - monjudoh’s diary 関数の形を見てみます。 // 1を足す function add1(callback,arg){ callback(arg+1); } コールバック関数を渡して、戻り値ではなくコールバック関数を呼び出してもらう事で結果を取得する……これって「CPS(継続渡し形式)」!CPSなら分かるわ!(当か?) 参考にしたサイト: http://www.h4.dion.ne.jp/~unkai/js/js12.html http://practical-scheme.net/docs/cont-j.html JSDeferredで考えるモナド - JavaScriptで遊ぶよ - g:javascript Haske

    「JavaScriptでの非同期関数合成」を継続モナドで - terazzoの日記
  • 1