このブログの更新は Twitterアカウント @m_hiyama で通知されます。
Follow @m_hiyama

メールでのご連絡は hiyama{at}chimaira{dot}org まで。

はじめてのメールはスパムと判定されることがあります。最初は、信頼されているドメインから差し障りのない文面を送っていただけると、スパムと判定されにくいと思います。

参照用 記事

予告:セミナー「モナド」シリーズを開始します

「カリー/ハワード(Curry-Howard)のお絵描きを楽しもう」にて:

シリーズ3回全体を総括しなきゃ、とか思っている間に4月になってしまいました。「次はどうしようか?」とかもいずれ書くつもりです

セミナー前後の事務的処理がどうも苦手で、けっこうそれが負担で苦痛だったりするんですが、、、、4月もやります!

なんとなく、そこはかとなく予告していたようにモナドシリーズの第1回。全体はたぶん3回。モナド以外のネタも考えたのですが、次の事情でやっぱりモナドにしました; ラムダ計算シリーズでは、背後にデカルト閉圏があることに言及はしましたが、それが何であるかはまったく説明できませんでした。僕も少しは心残りなんですが、僕より参加者の皆さんのほうがフラストレーションをつのらせたみたいです(苦笑)。アンケートにも「圏論をちゃんと取り上げて欲しい」という意見がありました(僕は意外に感じましたが)。

という次第で、圏論入門となるトピックを選ぶべき雰囲気になったわけです。しかし僕は、圏論を「圏論そのもの」として説明したり学ぶのはあまり得策じゃないなーと思っています(http://d.hatena.ne.jp/m-hiyama/20070109/1168308205#c の内海さんに対する僕の応答を参照)。何かの応用のなかで圏論の基礎的概念を紹介していくのがよかろうと。コンピュータに関連した題材として、代数/余代数とかインスティチューションとかもあるのですが、知名度(?)から言ってモナドかな、結局。と、まーそういうことです。

最初は、モナドの具体例を丁寧に紹介するつもりです。僕の感覚では、リストモナドが典型的モナドなので、リストから入るかもしれません。「圏論やモナドが、どうして文書処理やXMLと関係するのですか?」で紹介したテンプレートモナドも具体的で面白いですね。「世界で一番か二番くらいにやさしい「モナド入門」」で扱った大域変数への代入とか、ファイル入出力とか例外とかも外せない話題でしょう。関数計算の枠内で、副作用やエラーを扱う話です。

シリーズ全体の目標は、「モナドが自己関手の圏内のモノイド」であることを理解することでしょうか。これは、「圏、関手、モナドはどうしたら分かるの?」とか「自己関手の圏とモナド」に書いたことです。「ベックの法則と複合モナド」まで説明できるといいんだけど、、、(無理かな?)

さて、僕のモチベーションの由来として、4年以上前(2005年3月28日)に書いたエントリー「圏論とコンピューティング・サイエンス(とか勢いで書いてみる)」を全文そのまま引用します。「檜山さん、なんでこんなセミナーはじめたの?」に対する答の一部として。


20世紀の最後の20年ほどで、コンピューティング・サイエンスはある意味で爆発的とも言える発展をしたのですが、圏論はそれをささえた枠組み(の少なくとも1つ)だったろうと思います。例えば、代数/余代数の双対は圏論なしの定式化は考えにくいし、部分関数や例外を整合的に扱う方法もモナドなしでは難しいだろうし、一般的な型理論(indexed categories, fibred categories)も計算向きモデル論(institutions)もかなりマクロな圏論を使う必要があります。

僕は、非常に(嫌になるくらい:-))具象的なプログラミングやマークアップの世界でジタバタしてきたわけで、当然ながら、現場で「圏論のケの字」も口にしたことはありません。が、それでも無意識に(ときに自覚的に)カテゴリカルに考えることが多く、その意味で“隠れカテゴリスト”だったのです。個人的経験から言えば、泥臭い実務の場でさえアブストラクト・ナンセンス(ウルトラ・メタな方法)は有効に機能します。

いずれにしても、ここ四半世紀のコンピューティング・サイエンスの成果(の一部だけど)が、実務レベルではほとんど認知されてないし、ましてや応用もされてません。これでいいのか?という気はしますね。

とかいうと、「アカデミズムと現場にそのくらいのディレイがあるのは当然」という意見が出るでしょう。しかし、コンピューティング・サイエンスは新興科学ですから、現場からはるか先を走っているとは思えないのですよね。例えば(事情が違うのは承知で引き合いにだしますが)、博物学ではない生物学は新興科学でした。僕が高校生の頃、(教科書に載っていたのかどうか記憶は定かでないけど)ワトソン/クリックのDNA二重らせんの話は確かに聞きました。この事例では、発見から高校の授業までほぼ20年です。

実際問題としては難しい点は多々あるのですが、もうちょっと科学的にやれないものか、という感じがするのですよ。科学的とは、迷信、伝承、噂、星占い、根性、躾、軍隊、神風、詐欺などに頼らないことです(「ソフトウェア工学について思うこと」も参照)。


日付や場所については、近々決定して告知します。

懸念される問題点

Kleisliを口頭でなんて発音すべきか分からないで困っています。誰か教えてくださーい。

出現したリンクの一覧: