タグ

monadに関するkiyo_hikoのブックマーク (66)

  • JavaScriptのモナド | POSTD

    恒等モナド Maybeモナド リストモナド 継続モナド Do 記法 連鎖呼び出し モナド とは、一連のステップによって実行する計算を記述する際に使用する、1つのデザインパターンです。 純粋関数型プログラミング言語 では、モナドは 副作用を管理する ために広く利用されていますが、 マルチパラダイム言語では、モナドで複雑性を制御することもできます 。 モナドはデータ型をラップして、空の値を自動的に伝播したり( Maybe モナド)、非同期コードを簡略化したり( 継続 モナド)といった、新たな動作を既存のデータ型に追加します。 一連のコードをモナドと見なすためには、その構造には次に挙げる3つの要素が含まれていなければなりません。 型コンストラクタ — 基的な型に対してモナドの動作を追加した型を作成する機能です。例えば、基的なデータ型 number に対して、 Maybe<number> とい

    JavaScriptのモナド | POSTD
  • ソフトウェアエンジニアとしてモナドを完全に理解する / make-perfect-sense-of-monad

    モナドを完全に理解する

    ソフトウェアエンジニアとしてモナドを完全に理解する / make-perfect-sense-of-monad
    kiyo_hiko
    kiyo_hiko 2019/12/15
    なるほどわからん
  • モナド(clojure.algo.monads)よくわからないからとりあえずいじってみた - FLINTERS Engineer's Blog


    k_imaizumi   Haskell!  HaskellHaskellclojure  github.com  statemaybe statemaybe
    モナド(clojure.algo.monads)よくわからないからとりあえずいじってみた - FLINTERS Engineer's Blog
  • LogicT


    LogicT Backtracking, Interleaving, and Terminating Monad Transformers  Abstract   : interleave : >>- : ifte : once  msplit  2 使 使 1. Introduction 使 MonadPlus  
    kiyo_hiko
    kiyo_hiko 2018/10/30
    "任意のモナドでバックトラッキングを可能にするモナドトランスフォーマー"
  • The monad laws

    モナド則 三つの基則 「失敗」は付けたし 出口はない Zero と Plus 要約 このチュートリアルではいままで、技術的な議論を避けてきました。しかし、 モナドについて考えるべき技術的な要点が2、3あります。モナド演算は、 「モナド公理」として知られている、いくつかの法則群に従わなければ なりません。これらの法則は Haskell のコンパイラが強制するものでは ありません。したがって、すべての Monad のインスタンスと 宣言したものが、これらの法則に従うことを保証するのはプログラマ自身です。 Haskell の Monad クラスは、まだ見ていませんが、最小限の定義 以上にいくつかの関数を含んでいます。結局、多くのモナドは標準のモナド則 以外の規則にも従っています。Haskell のクラスにはこうした拡張されたモナド をサポートするためのものがあります。 三つの基則 モナドの概

    kiyo_hiko
    kiyo_hiko 2017/10/17
    "IOモナドから脱出することはできませんから…型構築子IO を含まないような関数の定義を書くことは不可能です… IOを含まないような結果を 返すあらゆる関数はIOモナドを使わないことが 保証されているということです"
  • プログラミング言語探訪

    Walking Through Programming Languages Languages Standard ML Haskell Misc. About

  • Haskell の Monad とは言語内DSLのフレームワークである - あどけない話

    この記事は、Haskellを勉強してある程度分かったけど、Monadで挫折した人のための記事です。10分間で、Monadに対する納得感を得ることを目的としています。他の言語でいう「モナド」にも通用する内容ですが、Haskell の文法や用語を用いますので、他の言語の利用者に分かるかは不明です。 Haskellを勉強したのですから、 代数データ型 型クラス は分かっていることにします。Monad は、単なる型クラスの一つで、それ以上でもそれ以下でもありませんから、この二つが分かってないと話になりません。 また、言語内DSL(以下、DSLと略記)という考え方を知っていることも仮定します。Monad とは、DSLのフレームワークという直感を与えるのが、この記事の主眼ですからね。 さらに、構造化定理をいう単語を聞いてもビビらない人を想定しています。逐次、反復、分岐があれば、計算しうる計算はすべて記

    Haskell の Monad とは言語内DSLのフレームワークである - あどけない話
  • 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

  • Iterator パターンの本質 · eed3si9n


    2011-12-17  Scala Advent Calendar 2011 17 specs2 @etorreborre  Eric Torreborre  The Essence of the Iterator Pattern  2011624 Eric Torreborre  20111217 e.e d3si9n   The Essence of the Iterator PatternEIP使for  
  • Prologのお勉強 - かもめのお宿

    kiyo_hiko
    kiyo_hiko 2014/10/19
    不勉強なのでホーン節自体既にモナドに似てるような気がしなくもない。参考にする
  • (402) 1 Σモノイド─メタ変数と明示的環境を持つ高階構文 浜名 誠 Σ モノイドとは Fiore,Plotkin,Turi らによって提案された変数束縛と代入の機構を持つ言語の代数的モデルである. 本論文では�

    kiyo_hiko
    kiyo_hiko 2014/01/29
    「Σモノイド─メタ変数と明示的環境を持つ高階構文」
  • 第29回 グローバル変数の代わりに使えるReaderモナドとWriterモナド


    Haskell使使IOST 使使 使 Reader  
    第29回 グローバル変数の代わりに使えるReaderモナドとWriterモナド
  • 初心者のモナド


     Haskell Advent Calendar 2012 20  Haskell()1調使   (>>=)  3 1Haskell IO調(
  • 単なる自己関手の圏における... (2) 関手 | tnomuraのブログ


      A = {1,3,5, .. }   B = {[1],[3],[5], ... }  id ,  (.)  A ->B f x = [x + 2] C  D = {2,4,6, ... }   E = {[2],[4],[6]}  id, (.) D ->E g y = [y * 2]  G  C GF
    単なる自己関手の圏における... (2) 関手 | tnomuraのブログ
  • 圏論でアハ体験 - Bug Catharsis


    1Code2012宿 VBer5 - LTLT5...LTF#LT使
    圏論でアハ体験 - Bug Catharsis
  • 絵で見るモナド · eed3si9n


    2012-08-21 John Wiegley  Monads in Pictures  2012820 John Wiegley  2012821 e.e d3si9n  稿使  Haskell : a (map) b
    kiyo_hiko
    kiyo_hiko 2013/12/26
    もう少しで理解できそう
  • yamicha.com's Blog

    kiyo_hiko
    kiyo_hiko 2013/12/26
    結合性と恒等関数が要るらしい // モノイドは二項演算と単位元、逆元 // C++のテンプレートにあたるような技能を標準装備してますって話など
  • もう一つのモナド:掲示板:シムダンス「四次元能」|Beach - ビーチ

    拍手数ランキング 一覧を見る 過去の発言 icon2024年 ├5月 ├4月 ├3月 ├2月 ├1月 icon2023年 ├12月 ├11月 ├10月 ├9月 ├8月 ├7月 ├6月 ├5月 ├4月 ├3月 ├2月 ├1月 icon2022年 ├12月 ├11月 ├10月 ├9月 ├8月 ├7月 ├6月 ├5月 ├4月 ├3月 ├2月 ├1月 icon2021年 ├12月 ├11月 ├10月 ├9月 ├8月 ├7月 ├6月 ├5月 ├4月 ├3月 ├2月 ├1月 icon2020年 ├12月 ├11月 ├10月 ├9月 ├8月 ├7月 ├6月 ├5月 ├4月 ├3月 ├2月 ├1月 icon2019年 ├12月 ├11月 ├10月 ├9月 ├8月 ├7月 ├6月 ├5月 ├4月 ├3月 ├2月 ├1月 icon2018年 ├12月 ├11月 ├10月 ├9月 ├8月 ├7月 ├6月 ├5月

  • Haskellの関数の適用や合成をどうイメージしていますか? - Qiita

    プログラミングHaskellなどを読んで、小さなコードは頭では分かるようになったのですが、大きなコードを読んだり自分で設計する際に、どのように関数の適用や合成などをイメージしたり図として表したらいいか分からず悩んでおります。 具体的には、f(x,y,z) = z*(x+y) という関数が表現したい場合、 (*) :: Num a => a->a->a (+) :: Num a => a->a->a f1 x y z = z * (x + y) f2 x y = (*) $ (+) x y f3 x = (*) . (+) x

    Haskellの関数の適用や合成をどうイメージしていますか? - Qiita
  • Amazon.co.jp: モナドロジー・形而上学叙説 (中公クラシックス): ライプニッツ (著), 富雄,清水 (翻訳), 勝久,飯塚 (翻訳), 篤司,竹田 (翻訳), Leibniz,Gottfried Wilhelm (原名): 本

    Amazon.co.jp: モナドロジー・形而上学叙説 (中公クラシックス): ライプニッツ (著), 富雄,清水 (翻訳), 勝久,飯塚 (翻訳), 篤司,竹田 (翻訳), Leibniz,Gottfried Wilhelm (原名): 本