タグ

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

  • 関連タグはありません

タグの絞り込みを解除

モナドに関するtjmtmmnkのブックマーク (4)

  • Scalaでやってみるモナド再入門 (Scala知らなくてもきっと分かるよ) - Qiita

    今回の目的 今回はモナドの厳密なルールより、なぜ使うのか?どう使えるのか?を簡単なところを数学表現なしでまとめてみるのが目的です。 まだまだモナドを完全に完全理解した! とはいい難いのですが、現在までの理解を書いてみたいとおもいます。 関数型プログラミングに関する熱い話はこちらの記事が参考になります! 関数型言語のウソとホント 関数型を考える上での前提 - プログラミングの作用と副作用 プログラミングの入力と出力は関数の引数と戻り値がメインです。 「作用」とは、その引数に対しての戻り値のことです。 Webアプリケーションサーバでの作用の考え方 HttpのリクエストのデータをHttpのレスポンスデータに変換する処理に過ぎません。 Scalaで表現するとこんな関数定義です。 val func : HttpRequest => HttpResponse Scalaでは => は関数の定義を示しま

    Scalaでやってみるモナド再入門 (Scala知らなくてもきっと分かるよ) - Qiita
    tjmtmmnk
    tjmtmmnk 2020/01/02
    “あらゆる文脈を結合して利用できるようにルール化されて、文脈制御の実装が入っているものがモナド”
  • サルでもわかるIOモナド①-副作用の除去

    このところ、仕事の手が空いたときに、Haskell というプログラム言語を勉強しています。Haskellは僕がふだん使っているJavaなどとはかなり趣きが異なるので、 考えさせられる点が多く、気分転換にはぴったりです。 とはいえ、最初はさっぱり理解できない点もありました。「IOモナド」です。 Web上の色々な資料を読んでいるうちにだいたいのところは理解できたのですが、そうなってみると、今度は、 最初に読んだ何冊かの入門書やWeb記事でのIOモナドの説明の仕方が気になってきました。 こうした記事は、素人向けに易しくIOモナドを説明しようとして、その結果、かえって読者を煙に巻いてしまっている面があるんじゃないかと思います。 IOモナドは、Haskell の鬼門とか呼ばれているようですが、わかってみるとさほど難しいものではありません。であれば、僕自身がきわめて素人くさくIOモナドを理解した仕方を

    サルでもわかるIOモナド①-副作用の除去
  • モナドを理解する - 迷える者への手引き

    いずれにせよ、システムの状態が時間の関数であり、そのため時間は考慮しなければならない余分な要素となります。"xの値は何?"と問い合わせることは実際できません。代わりに、"時間tにおけるxの値は何?"と問い合わせなければなりません。これではコードを判断するのが難しくなり、複雑な要素が増えます。結論としては... 状態あり: ダメ! 状態なし: グッド! 式とアクション 式とは値を持った文です。たとえば以下のコードを考えてみましょう。 x = 5 y = x + 7 x = y + 1 最初のxは値が5であるという式です。最後のxは値が13であるという式です。コードは他の式も含んでいます。たとえば真ん中の行は、x + 7が12という値であるという式です。 ほとんどのコンピュータ言語では、キーボードから読み込むコマンドは式であり、その式は値を持っています。次の文を考えてみましょう。 x = ne

    モナドを理解する - 迷える者への手引き
  • 30分でわかるJavaScriptプログラマのためのモナド入門

    「30分でわかる」のは、だいたい、 4. モナド(Monad)とは何か? の読了までを想定しています。 また速い人なら、30分で全部一気に読み通せる分量でもあると思います。 30分以上かかっても一気読みしてしまうことが推奨されますし、一気読みできるように、前に戻って知識の再確認をしなくて済むように、最大限留意して構成を設計した上で執筆されています。 数学と用語問題。モナドの理論的基盤として圏論があるのは事実。理論的基盤がしっかりしているのはプログラミングという数学的作業において歓迎すべきことではある一方で、他方そのため一般的なプログラマにとってはまず用語に馴染みがない。歴史的に、圏論ベースのモナドを理論から関数型プログラミングに応用されていく過程では、実際、先駆者の間でさえ紆余曲折があったのだが、学習者へは馴染みのない用語を伴って、いきなり高度な数学的概念全開で天下り的に提示されてしまうこ

  • 1