2010-01-01から1年間の記事一覧

Haskellのエラー処理とMonadCatchIOの落とし穴

(この記事はHaskell Advent Calendar jp 2010のために書かれました)Haskellではエラー処理に例外が用いられます(MaybeモナドやErrorモナドも用いられますが、ここでは例外に焦点をあてます)。 例外インターフェースの話 Haskellにも、例外を扱うためにtr…

関数型!侵略ノススメ☆

(この記事は Functional Ikamusume Advent Calendar jp 2010 の為に書かれました)侵略!侵略!侵略!侵略!侵略!侵略!イカ娘! 再帰しなイカ? main = putStrLn $ f 6 where f 0 = "イカ娘!" f n = "侵略!" ++ f (n-1) 古風に再帰しなイカ? main = pu…

ICFP Programming Contest 2010 優勝

Pure Pure Code ++ Language: C++, Haskell, Python ... are the programming languages of choice for discriminating hackers.今年のICFP Programming Contestにて優勝しました。(コンテスト中の様子は http://d.hatena.ne.jp/tanakh/20100702#p1 こちら…

One-liner in Haskell

Haskellを現場言語にするために、こんなものを作ってみました。hoe: Haskell One-liner Evaluator (名前には深い意味はありません。)Haskellでワンライナーをやろうという誰得なツールです。誰得ですが、ワンライナーでも、型があると便利なんではなかろう…

Lazy I/O must go! - Iteratee: 列挙ベースのI/O

最近ちょっと気になるiterateeを勉強したので、日本語の解説を書いてみます。と言いつつ、大部分が The Monad.Reader Issue 16 *1 からの引用です。 はじめに Iterateeと呼ばれる新たなI/Oの抽象化手法が、最近にわかに広まりつつあります。既存のI/Oが抱え…

[ICFP] ICFP Programming Contest 2010 参加記

pure pure code ++ というチームで参加していました。今回は問題がとても面白かったと思います。楽しめました。チームのメンバは http://twitter.com/nya3jp/status/16604202811 の6人。6人目のメンバーはトンちゃんでしょうか。 http://www.icfpcontest.org…

第五回チームラボ天下一武道会

第五回チームラボ天下一武道会 : ATND第五回チームラボ天下一武道会で優勝しました。第三回に続いて二回目です(第四回も参加していましたが、あまりに成績が悪かったので、参加記書くの忘れてました…)。 問題 http://tam-lab.sakura.ne.jp/tenkaichi/マル…

ファミコンエミュレータ for Java

http://d.hatena.ne.jp/tanakh/20050506#p2のあたりで開発したファミコンエミュレータをJavaに移植しました。ここで公開中 http://github.com/tanakh/bjne-javajarもあります。 http://github.com/tanakh/bjne-java/downloadsオリジナルのC++版。 http://git…

Haskellでメモ化を行うもう一つの方法

はじめに Haskell で動的計画法を書くための3つの方針 - tosの日記これを読んで、私もちょっと前にHaskellでメモ化をやる方法を考えていたことを思い出したので、書いてみることにします。Haskellでのメモ化は、私のかなり昔の駄文(リアルにびっくりするほど…

という夢を見ました

エイプリルフールなので、普段できない、関数型言語を貶しまくるというのをやってみましたが、思った以上に普通になりました。嘘をつくのは自分の心だけにして、それ以外はなるべく説得力のある文章を心掛けましたが、いかがでしたでしょうか。なんだ、分か…

手続き型に改宗しました

つい先日にあのような資料をアップロードして心苦しいのですが、手続き型に改宗することにしました。誰よりも関数型言語を愛し、常日頃よりどうして関数型が流行らないのかを考え続けていた私ですが、10年余りを経てようやく気付きました。関数型がイケてな…

チームラボ天下一武道会

チームラボ天下一武道会 ~コードGolf & F1レース!~ : ATND に参加してきました。普段Java使っていないのでどうなるかと思いましたが、なんとか優勝することができました。問題は、ユーザデータと商品の購入データが与えられるので、全商品間のコサイン類…

JOI 春合宿の講義資料

id:iwiwi さんからご紹介に与りまして、JOI春合宿にて講義をさせて頂きました。テーマはなんでも良いとのことでしたので、関数プログラミング入門ということで話させて頂きました。スライドを以下に公開しております。関数プログラミング入門View more prese…

wafのユニットテストモジュールの改良

前回wafの紹介記事を書きましたが、あれからいくつかバージョンアップがあって、それに伴ってユニットテストモジュールの仕様が結構変わりました。変わったといいますか、かなり改悪されたように思います。 --alltestオプションが常にTrueになるようになった…

waf チュートリアル

waf - The flexible build system http://code.google.com/p/waf/wafというものを最近知り一目惚れしてしまったので、紹介記事を書きます。ユーザーが増えると嬉しいな。 wafとは何か?特徴・利点・使うべき理由 wafはPythonベースのビルドシステムです。同…