タグ

monadに関するkgbuのブックマーク (12)

  • 第14回 関数脳のつくり方 Second Season ~モナドで悟りをひらく~

    大手SIベンダにてSEやPMやアーキテクトとして勤務したのち,株式会社豆蔵を経て,現在は合同会社シンプルアーキテクト代表社員であり,株式会社匠Business Placeのチーフコンサルタント。主に超上流のプロセスである要求開発やオブジェクト指向,アジャイル開発のコンサルタントとして活躍中。開発の現場にこだわり,開発の現場を少しでもよくしたいと日夜奮闘している。要求開発アライアンス執行委員。著書に『オブジェクト脳のつくり方』や『eXtreme Programming実践レポート』(ともに翔泳社発行。後者は共著)などがある。 Javaなど,オブジェクト指向や手続き型のプログラミングの経験はあるけれど,関数型のプログラミングは初めてという皆様のための,そして筆者自身のための「関数脳のつくり方」シリーズのSecond Season(First Seasonはこちら)。今回は「モナド」を取り上げま

    第14回 関数脳のつくり方 Second Season ~モナドで悟りをひらく~
  • Route 477(2009-10-24)

    ■ [ruby] gem-depcleanについて、とりとめもないこと RubyGemsをgentooのPortage風に管理するプラグイン、gem-depcleanをid:ursmさんが公開されています。 gem-depclean - ursmの日記 やりたいことは 依存元がなくなったgemの削除 必要なgem・versionだけ残すgem clean の2つですよね。 前者について これはRubyGemsの機能として含まれるべきでしょう。uninstallの時に、「それが必要としているが、他から必要とされていないgem」を 同時に消すオプションがあれば良いんですよね。 後者について 「gem clean railsしたら、昔書いたアプリで使ってたバージョンが消えて困った」とかの経験は僕もあります。 「このバージョンはまだ使ってます」フラグを立てることが出来たら良いのかも。(aptitu

    Route 477(2009-10-24)
    kgbu
    kgbu 2009/10/28
    「Rubyがeach+Enumerableで行っているようなことを、Haskellはもっと大規模に行っているのだ」ということらしい
  • Route 477 - gemcutterの使い方まとめ (2009年秋)

    ■ [haskell] モナドって結局なんなの 社内勉強会でモナドについて発表しました。分かった気がするたびにすぐに手からすりぬけてしまう、それがモナド…! 追記: モナドそのものが何なのかとか考えないほうがいいんじゃないですかね! [Twitter / いーぐるとまとより引用] まさにその通りだと思います(笑)。IOの使い方、Maybeの使い方、Stateの使い方などを押さえておけば、 中がどうなってるかなんて知らなくても大丈夫。 でも、モナドの持つ「なんか秘技がありそうな感じ」が、中を覗いてみたくさせるんですよね。 この、どこまで掘っても自分の知らないことが出てくる感じがHaskellの魅力なのかも。 Haskell の当にすごいところは、「なぜなに」を問いかけることでいつまでもプログラマが成長できるところにある。 [ふぁぼったー / ikegami__より引用] 一問一答 Q. モ

    Route 477 - gemcutterの使い方まとめ (2009年秋)
    kgbu
    kgbu 2009/10/22
    計算とその組み合わせ方を分離する、というデザインパターンという見方は目鱗
  • PPL2009 のみかいにて - keigoiの日記

    マジメな話は省略、主に自分の話だけメモ 飲み会は2日目だけ参加しました。 kinabaさん→id:osiire さん、 「リストの重複を省く関数(多相的)を作るときに Setモジュールが使えない」 OCaml の Set モジュールが多相的に使えない問題。 let uniq xs cmp = let module ASet = Set.Make ( struct type t = 'a (* 'a is unbound *) let compare = cmp end) in ASet.elements (List.fold_right ASet.add xs ASet.empty);; OCaml には scoped type variable がないから駄目なんじゃね? class の 型引数を scoped type variable として使えない? ムリポ class ['a]

    PPL2009 のみかいにて - keigoiの日記
  • Archives of the Caml mailing list > Message from Jacques Garrigue

    kgbu
    kgbu 2009/07/10
    「簡単な flow-sensitive な型を OCaml で 実装している ガリグ先生の caml-list への投稿」だそうです
  • セッション型 on Haskell - keigoiの日記

    セッション型は プロトコルを表現する型で, 15年くらい前から π計算の型理論の1つとして研究されてきました(文献リスト(一部)).並行・分散ソフトウェアの普及を鑑みるに,セッション型のような仕組みは次世代の型安全かつ表現力の高いプログラミングのための強力なツールとして役に立つと考えます. しかしその直観的なわかりやすさにも関わらず,セッション型を提供しているプログラミング言語は皆無(おそらく…)です. そこで,今 流行(?)の型レベル計算を駆使して Haskell にセッション型を導入してみました. ダウンロード 晒してみる. まだ α版 full-sessions ダウンロードページへ test.hs を ghci でロードしてください いくつかの関数は 型を見たり runS で走らせたりできます. test.hs の一部で ixdo 記法を使っているので, cabal install

    セッション型 on Haskell - keigoiの日記
  • 完全実装付きでもう一度お送りします、しりとりの圏 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    昨日のセミナーで、圏の簡単な事例として「しりとりの圏」を出したのですが、ハッキリとしたイメージを持てなかった人も多かったようです。 “技術者/プログラマ”であれば、実際に動くコードを持ち出すのが手っ取り早いのかな、と思い、しりとりの圏をJavaScriptで実装してみました。ここでは、このJavaScriptコードにそって、あらためてしりとりの圏を解説します。セミナーの内容や知識をまったく前提にしていません。白紙からの説明です。ただし、以前の記事(2006年8月21日)は参照する必要があります。 以前の記事とJavaScriptソースコードを並べて表示したい人は、次のリンクをクリックしてください。別なウィンドウ/タブで2つの参考エントリーが開くはずです。 はじめての圏論 その第1歩:しりとりの圏 (以前の記事) しりとりの圏 -- JavaScriptによる実装 (JavaScriptソー

    完全実装付きでもう一度お送りします、しりとりの圏 - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • 予告:セミナー「モナド」シリーズを開始します - 檜山正幸のキマイラ飼育記 (はてなBlog)

    「カリー/ハワード(Curry-Howard)のお絵描きを楽しもう」にて: シリーズ3回全体を総括しなきゃ、とか思っている間に4月になってしまいました。「次はどうしようか?」とかもいずれ書くつもりです セミナー前後の事務的処理がどうも苦手で、けっこうそれが負担で苦痛だったりするんですが、、、、4月もやります! なんとなく、そこはかとなく予告していたようにモナドシリーズの第1回。全体はたぶん3回。モナド以外のネタも考えたのですが、次の事情でやっぱりモナドにしました; ラムダ計算シリーズでは、背後にデカルト閉圏があることに言及はしましたが、それが何であるかはまったく説明できませんでした。僕も少しは心残りなんですが、僕より参加者の皆さんのほうがフラストレーションをつのらせたみたいです(苦笑)。アンケートにも「圏論をちゃんと取り上げて欲しい」という意見がありました(僕は意外に感じましたが)。 とい

    予告:セミナー「モナド」シリーズを開始します - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • Lawvere Theories and Monads | Lambda the Ultimate

    kgbu
    kgbu 2009/03/15
    Lawvere Theoryってのは初めて聞いたけど、Monadの類だということで、それらを副作用の分析に応用するとかいう話らしい。
  • [haskell][javascript] Arrow.jsが凄すぎる件 - Greenbear Diary (2008-07-25)

    ■ [mac] 英語を勉強したいならMac買うといいよ いままで英単語の意味を調べるときは ブラウザで新しいタブを開く alc.co.jpを開く (表示されるまでしばし待つ) 単語を打ち込む (表示されるまでしばし待つ) という手順を踏んでいたのですが、MacBookにしてからは マウスカーソルを画面左上に持っていく。Dashboardが表示される 開きっぱなしの英和/和英辞書に単語を打ち込む だけで単語の意味を調べられるように。前と比べて、明らかに知らない単語を調べる回数が増えました。 MacBookを買った直後から使えるとか、GreasemonkeyやBookmarkletと違ってブラウザ外(PDF読んでる時とか)でも引きやすいのが良いですね。 が、欲をいえば、 単語を選択する Dashboardを開く だけで単語が引けると手間が最小でいいなぁと思うのです。そうでなくても、 単語をクリ

    [haskell][javascript] Arrow.jsが凄すぎる件 - Greenbear Diary (2008-07-25)
    kgbu
    kgbu 2008/07/27
    複数の処理をまとめたり順列化できるという。Monadの仲間らしい。それをHaskellからJavascriptにもってきてしまったという。
  • Haskellの入出力

    参照透過性と遅延評価 純粋遅延関数型言語に入出力を導入する場合には、 参照透過性や遅延評価とどう折り合いをつけるか、 が問題になる。 参照透過性(Referential Transparency) 「参照透過性」の正確な定義は知らない。 けれど、だいたい 「等しいものを別の等しいものに置き換えられて、 置き換えての全体の結果が変わらない」 という性質を「参照透過性」と呼ぶ。 (「代入可能性の原理」とどう違うのかは、よく判らない) なんでこの性質を参照透過性と呼ぶのかも正確な所は判らないけど、 たぶん次のような事が元になっているのでは、と予想している (以下しばらく、題(入出力の話)とは関係ない)。 クワインは「指示と様相」(「論理的観点から」に収録)で、 だいたい次のような事を書いている。 名前(とか項とか)が単に対象を指示するものとして現れている場合を 「純粋に指示的(purely r

    kgbu
    kgbu 2008/06/20
    これだ、これが探していた(欲していた) >>= の説明だ。
  • モナドのすべて Haskell におけるモナドプログラミングの理論と実践に関する包括的ガイド

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

  • 1