bitterharvest’s diary

A Bitter Harvestは小説の題名。作者は豪州のPeter Yeldham。苦闘の末に勝ちえた偏見からの解放は命との引換になったという悲しい物語

プログラマーのための圏論(下)

『プログラマのための圏論』は(上・中)の後の部分をまとめ(下)にしてPDFファイルにしました。参考にしてください。なお、(上)のホームページはこちら。 (中)のホームページはこちら。

モナドの応用

最後に ノーベル経済学賞を受賞したダニエル・カーネマン教授が一般読者向けに著述した『ファスト&スロー』を読んだ。本のタイトルからは内容はつかみにくい。副題は「あなたの意志はどのように決まるか?」となっているので、脳科学の本かなと思い違いして…

モノイドーモノイド圏での記述

13.4 モノイド圏での記述 二項演算子は双関手として下図に示すように表すことができる。 双関手のクラスはHaskellでは次のように定義されている。 class Bifunctor p where bimap :: (a -> b) -> (c -> d) -> p a c -> p b d 上の定義で、二項演算子を\(…

モノイドーカテゴリー圏での記述

13.3 カテゴリー圏での記述 これまで、算数で最初に学んだ加算・乗算に代表されるモノイドと呼ばれる二項演算を、圏論でどのように記述したらよいのかについて話を進めてきた。即ち、アセンブラ言語でのように処理を具体的に記述するのではなく、高級言…

モノイドー代数学から圏論へ

13.2 代数学から圏論へ モノイドになれたところで、モノイドを代数学での定義から始めて圏論での定義へと段々に抽象化してみよう。丁度、プログラミングで、アセンブリ言語での記述から高級言語での記述に変えていくことに相当する。 1) 代数学での定…

三河国分寺・尼寺と豊川稲荷を訪ねる

秋分の日(23日)は、三河国分寺・尼寺を訪ねた。741年に聖武天皇が全国の国々に国分寺と国分尼寺を建立するようにとの詔を発した。三河の国は、この当時の中心的な地域であったのだろう、豊川の地に二つの寺が建立された。三河国分寺・尼寺は、豊川市の国府に…

縄文時代後期、最も多数の人骨が発見された吉胡貝塚を訪ねる

先週、息子のところに孫が生まれたので、赤ちゃんを見がてら愛知県の三河地方を訪れた。以前から訪問したいと思っていた吉胡(よしご)貝塚には、9月22日に足を運んだ。この貝塚は、大正11,12年に京都大学の清野謙次教授により、300体を超える人骨が発見され…

モノイドーHaskellでの表現

13.モノイド モノイド圏は、集合の要素を射に、二項演算子を射の合成に、そして、単位元を恒等射にし、結合律、単位律が成り立っているものをいう。例えば、整数の乗算の場合には、 1) 対象:シングルトン(通常星印で表される) 2) 射:整数 3) ドメイン、…

横浜:吉田新田を訪ねる

今回(19日)は、江戸時代の初めに開発された吉田新田の跡を訪ねた。この場所は、明治になると伊勢佐木町を中心に日本でも有数の商業地として栄えることとなる。しかし、戦国時代が終わり、江戸幕府が開かれたころは、大きな入り海だった。横浜には、関内と関…

キャスト・アウェイ (Cast Away) - 4年間の無人島での漂流生活の後に彼を待ち受けていた不条理な運命!

今回紹介する映画は2000年制作のトム・ハンクス演ずるキャスト・アウェイだ。俳優の役作りはすごいなあと感じさせられる時がある。この映画もその一つだ。映画が始まるとすぐに、宅急便のトラックからトム・ハンクス扮するチャックが下りてくるが、こんなに…

モナドと自然変換

12.圏論でのモナド Haskellでのモナドについて論じてきたが、モナドは圏論の中の一つの圏でもある。そこで、ここではモナドが圏となるための条件を求めて見よう。圏論においては自然変換は重要な役割をなすが、モナドは自然変換が主要な枠組みとなってい…

横浜関内の歴史的建築を訪ねる

9月1日は東京や横浜に住んでいる人々にとっては忘れてはならない日だ。94年前(大正12年)のこの日、関東大震災が発生した。地震の規模はマグニチュード7.9、東京・横浜の震度は6だ。発生した時間は11時58分、丁度お昼時だ。震源地は相模湾で、震源に近かった…

ビフォア・サンセット(Before Sunset)-9年後の再開

ビフォア・サンセットは、恋人までの距離(Before Sunrise)の続編で、9年後に作られた。 前作で、イーサン・ホークが演ずるアメリカ人青年ジェシーと、ジュリー・デルビーが演ずるフランス人女性セリーヌは、ブタペストからウィーンに向かう国際列車の中で出…

通常のプログラムをHaskellで記述する(5)

子供の頃に喉から手が出るほどに欲しかったものを多くの人は覚えているだろう。それも自分の小遣いでは到底手が届かないほど高値のものを切望したのではないだろうか。デパートと言われるものが全盛だった頃、おもちゃ売り場は何とも楽しい場所だった。その…

バターナッツかぼちゃの美しい姿を楽しめるローストに挑戦

お店でバターナッツかぼちゃを見つけた。昨年はハローウィンの頃だったので、今年は随分と店に出てくるのが早い。 前回はこれを用いてポタージュを作った。形が変わっているので、料理を作っているときは、みんなの興味を引いたが、いざ、出来上がってみると…

通常のプログラムをHaskellで記述する(4)

プログラムを書いているときに記憶力を疑うことが多い。プログラミングの経験が豊富なのだから、何も参考にすることなく、画面にプログラムを打ち込んでいけるのだろうと思われることも多いし、自分でもそう思っている。しかし、いざプログラムを打ち込む段…

通常のプログラムをHaskellで記述する(3)

11.3 状態を表現するための準備をする Haskellで状態を表すための準備をしよう。入力\(a\) を受けてその結果得られた状態\(s\)をタプル\( (a, s) \)であらわすことにしよう。Hskellでプログラムを書くときは、しっかりと腰を据えて考えることが必要であ…

通常のプログラムをHaskellで記述する(2)

最近、進化心理学の本を立て続けに読んだが、その中で最も優れていると感じたのは、ジョシュア・グリーン(Joshua Green)の『モラル・トライブズ』であった。 グリーンは高校生のとき、弁論部に属していたそうだ。対抗戦の弁論大会で、彼は「功利主義(utilita…

通常のプログラムをHaskellで記述する(1)

11.通常のプログラムをHaskellで記述する モナドの大きな目的は手続き型プログラミング言語で書かれたプログラムを副作用のない純関数型のプログラムで記述できるようにすることである。通常のプログラミング言語は多くの場合手続きが他である。これには…

Haskellの難関モナドを突破するために掘り下げて学ぶ(4)

10.4 モナドを別の方法で定義する 前の記事でモナドを定義するときに\(>>=\)という関数を用いた。この関数の型シグネチャは次のようになっていた。 (>>=) :: \ m a -> (a -> m b) -> m b ここで、\(m\)を関手と考えてみよう。関手\(F\)は下図のように定…

Haskellの難関モナドを突破するために掘り下げて学ぶ(3)

10.3 プログラムの結合 前々回の記事で紹介した二つのプログラムを決後するフィッシュ・オペレータをHaskellで実現することを考えよう。二つのプログラムを結合するとは、下図を実現することである。 上図では二つのプログラム\(f,g\)がある。それぞれの…

Haskellの難関モナドを突破するために掘り下げて学ぶ(2)

10.2 集合と冪集合 数学は全く異なるものの間の中に共通する性質を見出し新しい概念を引き出すことを得意とする学問だ。ここでも、後でまさかと思うことを説明するのだが、その準備のために集合について少し説明しておこう。集合は要素の集まりと最初は…

Haskellの難関モナドを突破するために掘り下げて学ぶ(1)

10.モナドを掘り下げよう 圏論についての説明は前回の記事で一応終了した。しかし、ある事項についてはもう少し詳しく知りたいということがあるだろう。そのうちの一つはモナドだと思う。モナドは慣れてくるととても便利な道具なのだが、そこまでに行き着…

恋人までの距離(Before Sunrise)-再会を期しての別れの場面

ジェシーとセリーヌはウィーンの街へと繰り出す。かつてはハプスブルグ家がこの地に居城を開きヨーロッパの中心となっていた。さぞかし、有名な遺跡を巡るのかと思うとその期待は裏切られる。そう、二人にとっては観光旅行ではなく短いが楽しい時間そして愛…

恋人までの距離(Before Sunrise)-出会いの場面

専門分野の話は英語で話されても100%理解できる。しかし、映画となるとどうも心もとない。日常使うような言い回しを受験英語で学ぶことがほとんどなかったので戸惑いを感じるためだろう。先日、カリフォルニアに住んでいるEdとGayeから、来年の秋にハワイの…

若鶏のバスク風

鶏を丸ごと買ってきて作る料理を紹介しよう。頻繁に訪れる大型スーパーは周辺に外国人が多く住んでいるためかサイズの大きな肉が豊富に取り揃えられている。ステーキ用に300gサイズの豪州産牛肉が大量に並べられている。豚のステーキ肉も通常のものよりは2倍…

恩田川を散歩する

先日wowowで『4月の君の嘘』という映画を観た。高校生のラブストーリーだ。広瀬すずが扮するヴァイオリニストのかおりは余命いくばくもない。山崎賢人が演じる公生は天才的なピアニストととして幼いころは名をはせていたが、母親の死を境にしてピアノの音だ…

伊東丸山公園で紫陽花を楽しむ(7月11日訪問)

地元の歴史研究会の秋の例会で縄文時代の家族システムについて説明することになっている。その準備作業をするために伊豆に逗留することが多くなってきた。インターネットも使えないような山の中で、小鳥の鳴き声を聞きながら緑の木立に囲まれリクライニング…

関手圏

9.関手圏 9.1 小さな圏の圏 圏は、対象と射で構成されていた。そこで、対象を圏とし、射を関手とする圏を考えることができる。しかし、この圏を作るにあたっては少し制約を設けている。これは圏から圏を作るということになるので、集合の集合を考えると…

シュークルート:アルザス地方のキャベツの漬物とバーコン・ソーセージの煮込み料理

ザワークラウトが半分ほど残っていたので、これを使ったおいしそうな料理をということでシュークルートを作ることにした。ザワークラウト(Sauerkraut)はドイツ語でキャベツの漬物である。もともとの意味は酸っぱいキャベツだ。この酸っぱさは、酢からではな…