タグ

ブックマーク / route477.net (3)

  • Route 477(2007-07-18)

    ■ [haskell] モナドについてなんか分かった気がした モナドって「結局何なの?」ってのがいまいち分からずにもやもやしてたんだが、なんか分かった気がしたのでメモ。 関数型言語では値が関数から関数へと流れていくことで計算が行われる。 このプロセスに「一皮被せる」ことで、計算の筋とは別にいろいろな「仕掛け」を組み込むのがモナド。 値 a をただ流すんじゃなくて、Maybe a のようにモナドという箱に入れて、箱に入ったものどうしの演算を定義することで仕掛けを作る。 Haskellでは、モナドを「returnとbind(>>=)というメソッドが定義されている型」で表す。returnは値を箱に入れる関数。>>=は値を流す関数。 class Monad m where (>>=) :: m a -> (a -> m b) -> m b return :: a -> m a returnの型は

    Route 477(2007-07-18)
  • Route 477 - gemcutterの使い方まとめ (2009年秋)

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

    Route 477 - gemcutterの使い方まとめ (2009年秋)
  • Route 477(2009-03-31)

    ■ [scheme] MITがSchemeをやめてPythonを採用した理由 という記事をPlanet Scheme経由で見た。 Why MIT switched from Scheme to Python | Wisdom and Wonder が、読んでみるとタイトルに偽りありで、「なぜMITはSICPを止めたか」(Schemeをではなく)という話だった。 詳細はlequeさんによる日語訳を読んでもらいたいのだけど(もちろん原文でもいい)、 簡単に言うと、「研究の補助手段としてプログラミングする際のやり方が、80年代と現在ですっかり変わってしまったから」ということのようだ。 もともとSICPは情報系ではない学生のためのプログラミング入門講義(6.001)で使われていたテキストで、 自分が把握できる小さなパーツをいくつも組み合わせて目的のものを作り出すやり方を説明するのが目的だった。

    Route 477(2009-03-31)
  • 1