タグ

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

  • モナドって結局何なのよ? — join to Monad v0.1.3 documentation

    モナドって結局何なのよ?¶ Haskell を勉強しようとすると必ず「モナド」ってのが出てきます。困ったものです。数学とか圏論とか関係があるらしくって、何が書いてあるんだか分からなくって嫌になってしまいます。でもね、Haskell って凄いらしいじゃないですか、格好良いらしいじゃないですか。ここはちょっとがんばって色々考えてみましょう。 そもそも Haskell って何なのよ?¶ 何なんでしょうね、Haskell って。コンピュータ言語らしいんです、あ、それは分かってると。良く挙げられる性質は次な感じ?: 関数型言語 強い型付け 遅延評価 参照透過 ここでちょっと型に関して見てみましょう。試しに Haskell の実装の 1 つである Hugs で 1 について考えてみます。Hugs では :type や :info というコマンドで hugs に型の情報などを質問することができます。例え

  • モナド (プログラミング) - Wikipedia

    関数型プログラミングにおいて、モナドはプログラムを構造化するための汎用的な抽象概念である。対応したプログラム言語では、ボイラープレート的なコードでもモナドを使って除去することが可能となる。これはモナドが、特定の形をした計算を表すデータ型と、それに関する生成と合成の2つの手続きを提供することによって実現されている。生成は任意の基型の値をモナドに包んでモナド値を生成する手続きであり、合成はモナド値を返す関数(モナド関数)たちを合成する手続きである。[1] 広い範囲の問題をモナドを使うことで単純化できる。例えば、Maybeモナドを使えば未定義値への対処が簡単になり、Listモナドを使えばリストに入った値を柔軟に扱うことができる。複雑に組み合わさった関数は、モナドを使えば、補助データの管理や制御構造や副作用を除去した簡単なパイプライン構造に置き換えることができる[1][2]。 モナドの概念や用語

  • Maybe モナド

    Nothing がゼロ。プラス演算子は最初の 非-Nothing 値を返すか、両方の入力が Nothing であった場合には、Nothing を返す。 動機 Maybe モナドは計算の連鎖を合成する戦略を内包している。それぞれの計算が それまでのどのステップも出力として Nothing となれば、 最後に Nothing を返すかもしれない。これは計算が、互いに 依存するステップの並びを伴い、その中に値を返すのを失敗するかもしれない ステップが含まれている場合に役にたちます。 もし以下のようなコードを書いたことがあるなら: case ... of Nothing -> Nothing Just x -> case ... of Nothing -> Nothing Just y -> ... Maybe のモナドとしての性質をつかってコードを改良することを 考えるべきでしょう。 定義 da

  • F#プログラマのためのMaybeモナド入門 - みずぴー日記

    http://twitpic.com/3w34bo はじめに モナドといえばHaskell、Haskellといえばモナドが有名ですが、モナドは特定の言語とは無関係の仕組みですので、F#でも使えます。ただ単に使えるだけでなくコンピュテーション式というモナドをより便利に使うための文法まで用意されています。 この記事では、option型を便利に扱うためのMaybeモナドを例にモナドのすごさを紹介していきます。 Maybeモナドのすごいとこ option型っていいですよね。ぬるぽので落ちる心配もないですし。Maybeモナドはそんなoption型を便利に扱うためのモナドです。 option型を扱うのにMaybeモナドと呼ばれてるのは、Haskell由来だからで特に重要な理由はありません。 DBからの値取得とかHttpリクエストからのパラメータ取得などの外部とやりとりする関数は必ず成功するとか限らない

    F#プログラマのためのMaybeモナド入門 - みずぴー日記
  • 1