タグ

ブックマーク / tanakh.jp (4)

  • Partial Function Considered Harmful - 純粋関数空間

    この記事は、Haskell Advent Calendar 2011 25日目の記事として書かれました。 概要 Haskell、あるいはその他のプログラミング言語では 「部分関数(Partial Function)」 と呼ばれるものが標準ライブラリに存在したり、 定義したりすることができます。 今回はそれらが有害であるという考えと、 代替の紹介をしようと思います。 部分関数とは 部分関数(Partial Function)とは、 集合の言葉で言うと、 定義域(domain)の要素に対して、値域(range)の値が高々1つ対応付けられる ような対応付けのことです。 Haskellでは 「結果の値が引数によっては定義されないことがあり得る」 関数だと言えます。 例えば、整数の割り算を行う関数 div :: (Int, Int) -> Int は、 (1, 0) に対しては定義されません。 Ha

    asla
    asla 2013/02/14
    Haskell で型チェックを活用する方法
  • ConduitとHaskellでネットワークプロキシサーバを作る - 純粋関数空間

    この記事は http://www.yesodweb.com/blog/2012/06/conduit-0-5 の翻訳です。 conduit-0.5 をリリースしました。 conduitはストリームデータを扱うためのライブラリです。 conduitを用いると、様々な形のデータを生成、変形、消費するような処理を、 簡単に組み合わせることができるようになります。 enumerator/iterateeパラダイムと同じ問題を解決することを目的に作られましたが、 アプローチはこれらのものとは異なります。 conduitは簡単に理解して利用できるものになることを一番の目的としています。 遅延I/Oとは異なり、リソースの即時開放を保証し、 また、純粋なコードに例外を持ち込みません。 今回のリリースでSource、Sink、Conduitのそれぞれを作るための、 シンプルで効率の良い、高レベルのインターフ

  • HakyllとpandocとMighttpdでサイトを作った話 - 純粋関数空間

    このページについて ページのフッタに書いてあるので、お気付きの方もいらっしゃるかと思いますが、 このページは Hakyllと Pandocと Mighttpdにて運用されています。 完全なソースコードを https://github.com/tanakh/tanakh.jp から参照できます。 HakyllとはHaskellによる静的ページ生成ツールで、 Jekyllにインスパイアされて作られたものだそうです。 JekyllがRubyによって書かれ、Rubyによってページの構造を記述するのに対して、 HakyllはHaskellによって書かれ、Haskellによってページの構造を記述します。 Pandocとはいろいろなドキュメントフォーマットのコンバータです。 Haskellで書かれています。さすがにもうHTMLを手で書きたくはない、 かついろいろなブログの独自のフォーマットなんて覚えてい

    asla
    asla 2012/02/04
    Pure Haskell Site
  • パラダイムとしてのモナド ~ Monad as a Paradigm ~ - 純粋関数空間

    昨日、日ユニシス様にて技術交流会が開催されまして、 そこで講師として発表させて頂きました。 Haskellの話ということで、どういう話にするか悩みましたが、 プログラミングモデルからHaskellの面白さを語るという いつにもなく(あるいはいつもどおりの)無謀な内容になりました。 ぎりぎりまでどう言うシナリオにするか悩んだ末、これまたいつもどおりの 取り留めのない話になってしまいましたが、 面白かったといってくださる方がいてよかったです。 前半は私が最近面白いと思ったHaskellのライブラリ・アプリケーションの話を織りまぜつつ Haskellの魅力を紹介するパートで、 後半は最近の私のモナドに関する持論を展開するという謎パートです。 モナドというのは何者なのか なぜモナドなのか モナドには何が出来るのか なぜHaskellでモナドを扱うのか IOモナドとは何なのか これらを解き明かしつ

    asla
    asla 2011/11/12
    Haskellのモナドって、すごそう
  • 1