タグ

Haskellに関するwalf443のブックマーク (3)

  • 檜山正幸のキマイラ飼育記 - 世界で一番か二番くらいにやさしい「モナド入門」

    気まぐれと偶然となりゆきで、ここ2,3回はモナドを話題にしました。googleで「モナド」を引いてザッと眺めると、「モナドはむずかしいー」とか「モナドで挫折した」みたいな雰囲気が感じられて、説明芸人の血が少し騒ぎましたね。「なら、予備知識ゼロでモナドの説明をしてやろうじゃねーか」と。 タイトルはだいぶ煽っちゃった…… けど、ハッタリじゃないつもり…… けど、実際はどうかな? ※印刷のときはサイドバーが消えます。 内容: とりあえず、あたりさわりなくモナドの来歴を紹介する こんな課題を考えてみよう:副作用付き計算 カウントアップする関数達 カウントアップしたい意志を戻り値で伝える それでは、いったい誰がカウントアップをするのだ 関数の引数の型をCountup型にまで拡張する そして、これがモナドだ とりあえず、あたりさわりなくモナドの来歴を紹介する 今からここで説明する「モナド(monad)

    檜山正幸のキマイラ飼育記 - 世界で一番か二番くらいにやさしい「モナド入門」
  • Rubyでモナドの練習メモ - llameradaの日記

    Haskellに登場するらしいモナドを少し勉強してみる。よくわからないが、試しにMaybeモナドをRubyで書いてみた。どこか間違えていると思うが、コードは下記。 class Maybe def Maybe.wrap( value ) Maybe.new(value) end attr_accessor :value def initialize(value) @value = value end def pass if @value.nil? Maybe.new(nil) else yield @value end end end def div6(x) if x == 0 nil else 6 / x end end def inc(x) x + 1 end def normal_div6_inc(x) rv = div6(x) if rv inc(x) else nil end en

    Rubyでモナドの練習メモ - llameradaの日記
  • Monads in Ruby, Part 1: Introduction - Moonbase

    This article owes a great debt to Monads as Containers and A Schemer’s Introduction to Monads, each of which greatly advanced my understanding of the topic. Introduction Monads have been getting a lot of press lately in connection with the Haskell programming language. They’re a very powerful programming tool in functional languages, but all too often they’re described as some sort of black magic

    walf443
    walf443 2006/02/03
    RubyでHaskellのMonadsなるものを再現する試み。Monadsは遅延評価に関するものらしい
  • 1