タグ

monadに関するysano2005のブックマーク (11)

  • Perlの駱駝のこぶにはMonadも入ってる : 404 Blog Not Found

    2006年04月20日00:29 カテゴリLightweight Languages Perlの駱駝のこぶにはMonadも入ってる PerlLambda Calculusが入っているというのは以前何度か紹介した通りだが、実はMonadも入っているのである。そして、皆さんも知らない間に使っているのである。 檜山正幸のキマイラ飼育記 - 世界で一番か二番くらいにやさしい「モナド入門」 「なら、予備知識ゼロでモナドの説明をしてやろうじゃねーか」と。 それでは、世界で一番Monadが簡単に使える言語(0番はPerl6!)での実例をいくつかお見せする。 まずは一番簡単な例から。 use strict; use warnings; package Tie::Verbose; use Tie::Scalar; use base 'Tie::StdScalar'; sub TIESCALAR{ my $

    Perlの駱駝のこぶにはMonadも入ってる : 404 Blog Not Found
    ysano2005
    ysano2005 2006/04/20
    "Perlのtieは、基本的にはMonadなのである。"
  • 檜山正幸のキマイラ飼育記 - 世界で一番か二番くらいにやさしい「モナド入門」

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

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

    http://d.hatena.ne.jp/ysano2005/20060412/1144843566 を読んで、確かにモナドの短めのサンプルコードがあると便利だよな、と思ったので、勉強がてら自分で書いてみることにした。http://www.sampou.org/haskell/a-a-monads/html/introII.htmlにそって一つずついこう。 今日はMaybeモナド(http://www.sampou.org/haskell/a-a-monads/html/maybemonad.html)。Maybeモナドは、Nathingかあるいは何かの値を含んだモナド。辞書を検索した返り値なんかに使う。結果がなければNothing、結果があればJust 値。 サンプルの説明 書いたサンプルは単純に、連想配列(sample_alist,sample_alist2)から対応する値を返すmy

    もなもなMaybeモナド - sshi.Continual
  • What is a monad, why should I use it, and when is it appropriate? | Lambda the Ultimate

    ysano2005
    ysano2005 2006/04/12
    Reader Monad - computations which maintain an environment (e.g., a set of lexically scoped variable bindings).
  • Scope herding with delimited continuations

    ysano2005
    ysano2005 2006/04/12
    Reader monad / local / ask / asks
  • http://www.haskell.org/hawiki/MonadReader

    ysano2005
    ysano2005 2006/04/12
    Reader
  • http://homepages.inf.ed.ac.uk/wadler/papers/marktoberdorf/marktoberdorf.pdf

  • Continuation モナド

    動機 Continuation モナドの濫用は理解や保守が不可能なコードをつくり出す 可能性があります. Continuation モナドを使う前に継続渡しスタイル(CPS)について 確実に理解しているか,自身の設計課題について継続が最良のソリューション なのかを確認してください.他の言語では継続が要求されるような多くの アルゴリズムにおいて,Haskell では遅延評価意味論のおかげで,継続を 必要としません. 継続は計算のこの先(future)を表現しており,これは 中間結果から最終結果への関数として表現されます.継続渡しスタイル では,計算は入れ子になった継続のならびから構築され,最終結果 を生成する最終継続(多くの場合 id)で終了します. 継続は計算のこの先を表現する関数ですから,継続関数を操作することで 複雑な計算のこの先を操作することができます.たとえば,途中での 計算への割

  • Reader モナド

    動機 いくつかのプログラミングの課題では、(変数束縛の集合のような)共有された 環境内での計算が必要となる。こうした計算では、典型的にはその環境から 値を読み、ときには変更された(たとえば、新しい束縛や、覆い隠す束縛など) 環境のなかで部分的な計算を実行しますが、完全に一般化された State モナド までは必要ありません。 Reader モナドはこのようなタイプの計算のために特化して設計されています。 そして、多くの場合 State モナドを使うよりも明瞭で簡単な機構です。 定義 ここで示した定義では Haskell 98 の標準にはない、複数パラメータ型クラスお よび funDeps が使われています。この Reader モナドを利用するのに、これの 詳細を完全には理解する必要はありません。 newtype Reader e a = Reader { runReader :: (e -

  • All About Monads モナドのすべて

    モナドのすべて Haskell におけるモナドプログラミングの理論と実践に関する包括的ガイド Version 1.1.0 このチュートリアルは、モナドの概念とその関数プログラミングにおける応用に ついて、初中級の Haskell プログラマにわかりやすく、利用価値があるような 解説をすることを旨としています。読者は Haskell になれていることを前提と しますが、モナドに関する経験は要求していません。このチュートリアルは、多 くの題材をカバーしています。後半のセクションでは、前半の題材をよく理解し ていることを前提とします。順をおって、モナドプログラミングを例示するため のサンプルコードがたくさん用意されています。一読で、すべての題材を吸収し ようというのはお勧めできません。 このチュートリアルは 3 つの部分で構成されています。最初の部分は、 関数プログラミングにおけるモナドの基

  • 「アルファブロガー」を捜すには

    ysano2005
    ysano2005 2006/04/11
    liftIO
  • 1