タグ

Haskellに関するir_taktのブックマーク (8)

  • Haskellでの合成可能なオブジェクトの構成とその応用

    Haskellでの合成可能なオブジェクトの構成とその応用 木下郁章, 山和彦, 2015 Haskellで状態を管理する際は、 一般的に代数データ型や型クラスが用いられるが、 データが拡張できないか、動的な性質を持たない。 そのためHaskellは、 複雑な状態を扱う問題領域には適していないと考えられてきた。 一方で、一般的なオブジェクト指向言語では、 オブジェクトを提供することでこの問題領域で成功を収めている。 論文では、Haskellの言語仕様を変更することなしに、 オブジェクト指向言語から着想を得たオブジェクトを実現する。 論文で提案するオブジェクトは圏を構成し、合成を用いて継承を表現できる。 また、終了する運命にあるオブジェクトやストリーミングなどに応用でき、 複雑な状態を扱うゲームの実装にも使われている。 論文をダウンロード(PDF) PPL 2015 発表スライド ここに

  • IIJ Technical WEEK 2012 - Haskellで実装した高速WebサーバMighttpdについて

    1 Haskell Web Mighttpd 2012.11.14 2 Mighttpd Haskell 3 Mighttpd Haskell Web 4 Mighttpd 5 Ping Pong 12 Linux 3.2.0 weighttp -n 100000 -c 1000 -t 3 -k http://127.0.0.1:8000/ index.html 151 6 WAI Web Application Interface type Application = Request -> ResourceT IO Response 7 Haskell 8 Haskell 9 10 11 12 13 1 1 14 15 Haskell Timeout timeout :: Int -> IO a -> IO (Maybe a) recv :: Socket -> Int -> IO St

  • モナドハンズオン前座

    「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)parrotstudio

    モナドハンズオン前座
  • インデントで悩まないための単純な指針 - www.kotha.netの裏

    Haskellコードを書いていて、インデントを揃えるのが面倒だとか、インデントが揃っているか判別しにくいということがあるかもしれない。以前は私にもよくあったのだが、二つの簡単な指針に従うことに決めてからこの種の問題に悩まされることはなくなった。ので紹介する。 インデントを揃える際は、そこより左には空白しか置かない インデントは常にkの倍数個の半角スペースで行う。ここでkはプロジェクトごとの定数(以下ではk=2) 具体例 foo x y = do runThis runThat と書かずに、 foo x y = do runThis runThat と書く。 foo = bar * 2 where bar = 1 + quux quux = log 3 と書かずに、 foo = bar * 2 where bar = 1 + quux quux = log 3 と書く。 data Foo a

    インデントで悩まないための単純な指針 - www.kotha.netの裏
  • Emacs Lisp 脳と Haskell 脳 ~関数型言語ってなぁに?~ IIJ-II 山本和彦

    1 Emacs Lisp Haskell IIJ-II 2 Emacs Lisp Haskell 3 4 http://practical-scheme.net/trans/reesoo-j.html 5 Lisp Java Java Lisp 6 7 Emacs Lisp Haskell Emacs Lisp Haskell 8 9 10, 20, 30, 40, 50 0 n n 10 * 0 + 20 * 1 + 30 * 2 + 40 * 3 + 50 *4 = 400 10 10 * 0 + 20 * 1 + 30 * 2 + 40 * 3 + 50 *4 = 400 for 11 for Douglas Crockford JavaScript: http://www.crockford.com/javascript/javascript.html for JavaScript

  • すごい Haskell たのしく学ぼう!は本当にすごいのか? - ぐるぐる~

    すごいHaskellたのしく学ぼう! 作者: Miran Lipovača,田中英行,村主崇行出版社/メーカー: オーム社発売日: 2012/05/23メディア: 単行(ソフトカバー)購入: 19人 クリック: 552回この商品を含むブログ (36件) を見る 今話題の、すごい Haskell たのしく学ぼう!を読んだのですが、ちょっと思ったことがあるので書評と合わせて書いておきます。 思ったこと 関数型言語がこれほど話題になるのはとても嬉しいことです。 しかし、一方で懸念点もあります。 ノリで「すごい」とだけ言う人たちがいる その人たちに乗せられて (自分には合わないのに) 買ってしまって、挫折してしまう人が出てきそう このは、いいです。 翻訳の質も素晴らしく、読んでいて「読みにくいな」と思った部分はありません。 それに加え、訳注と Appendix も素晴らしい。 しかし、誰にで

    すごい Haskell たのしく学ぼう!は本当にすごいのか? - ぐるぐる~
    ir_takt
    ir_takt 2012/05/26
    "関数型の考え方を取り入れたい!という人には、この本ではなくオブジェクト指向プログラマが次に読む本 ?Scalaで学ぶ関数脳入門あたりをお勧めします。"
  • 第一回関数型言語勉強会懇親会に出て分かった多くのこと #fpstudy - 森理 麟(moririring)のプログラマブログ

    関数型言語勉強会に参加して 関数型言語勉強会に出た。 スピーカーのレベルは高かったし、かなり笑いを誘う人が多かったので凄く面白い勉強会だった。 しかし、ん?結局関数型言語は何が良いかはさっぱり分からなかった。 そう思って懇親会に参加。で、結局関数型言語って何が良いの?という質問を聞きまくった。 関数型言語のメリット 運良く周りが結構スピーカーだった人が多かった。そして幾つかの事が分かった。 ズバリ関数型言語のメリットはソースコードを短く書ける。 これが全面的なメリットだ!と言っていた人はいなかったけれど、突き詰めるとこれがいちばんメリットじゃないかなと思った。 他の言語なら2行で書ける命令を、ある言語なら1行で書けますってだけで乗り換える意味はあると思う。 短く書ける理由 短く書ける理由として、抽象度が高いとか色々聞いたけれど、イマイチ、ピンとこなかった。 まあでもオブジェクト指向言語も関

    第一回関数型言語勉強会懇親会に出て分かった多くのこと #fpstudy - 森理 麟(moririring)のプログラマブログ
    ir_takt
    ir_takt 2012/05/20
    "関数型言語の考え方自体が結構優れているので、その考え方を覚えれば、非関数型言語で組んでも優れたプログラムになる"
  • 関数型言語って何がすごいんですか - Gemmaの日記

    C使いの人に、 関数型言語って何がすごいんですか と聞かれて、 じゃあC言語で accumulator すなわち、数nをとり、「数iを取ってnをiだけ増加させ、その増加した値を返す関数」を返すような関数を書いてみろよ って言ったら、 値を返す関数を返すような関数・・・? オンドゥルルラギッタンディスカー で、会話が続かない。 さらに、C使いのターン。 関数に関数を渡せる? Cだって関数ポインタ渡せますよ。 チューリング完全なんだから、どんなプログラムだって書けますよ。 と仕掛けてきた。そこで、 じゃあ、3回呼ぶと動作が変わる関数を書いてみて。 f(); f(); f(); f(); と呼ぶと、 3 2 1 liftoff って出力されるやつ。ロケットみたいな。 できました。 #include <stdio.h> void f() { static int count = 3; if (co

    関数型言語って何がすごいんですか - Gemmaの日記
  • 1