2009年10月29日木曜日

三重苦の勉強会・・・。でもこれからも参加するよ!

圏論がわからない、Haskellがわからない、英語がわからない・・・。
TLUGのメーリングリストに面白そうな勉強会のメールが流れてたので、(ちょっと遠かったけど)新宿まで移動して勉強会に飛び入り参加してきたところ、冒頭の三重苦に悩まされました。
というのは大げさですが、「圏論の基本的な話をして、関連するパズルを解くプログラムをHaskellで書いてみた話を(英語で)します」というのに、圏論もHaskellも英語も自信がないと、やはり理解度は落ちますね。

「パズル」はここに載ってますが、数学的厳密性を無視して日本語にするとこんな感じ。
サイズnの有限集合Aが与えられたとき、任意のa∈Aに対して f(a) = f(f(a)) を満たす関数 f は何種類存在するか?
これを数学的に解くのではなくて、関数 f を列挙するプログラムを Haskell で書いてみる、という数学者に怒られそうな、コンピュータサイエンス的な勉強会でした。

パターンマッチのルールも忘れていましたが、久しぶりに関数型言語に触れて楽しかったです。functional languageには、imperative languageでは味わえない記述の楽しさがありますね。まさに数式を書いている感覚です。さらっと書けると気持ちいいですよね。まぁ、さらっと書いても私のPCには実行環境がないんですけどね。

「圏論がわからない、Haskellがわからない、英語がわからない。」と書きましたが、逆に (?) 考えれば、圏論とHaskellと英語とを学べる勉強会ということなので、継続的に参加しようと思います。ちょっと高いけど "Conceptual Mathematics" を買いましょう。(Kindle edition出してよー)

(ところで、今日の話は圏論というより群論だと思ったのですが、群論⊂圏論なんでしたっけ? もう少し勉強が進めば違いがわかるかな。)

Travis and Curt, thank you for exciting presentation and providing a venue!

0 件のコメント:

コメントを投稿