bitterharvest’s diary

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

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

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

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

通常のプログラムを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)はドイツ語でキャベツの漬物である。もともとの意味は酸っぱいキャベツだ。この酸っぱさは、酢からではな…

自然変換

8. 自然変換 圏論の話もそろそろ終わりに近づいてきた。これまでの話の中で重要であった話題は、圏そのものと、関手である。圏は計算の構造を示し、関手は構造を維持しての圏から圏への射を与えてくれる。今回は、この二つの概念に劣らないほどに重要な自…

サーモンと玉ねぎ・ピーマンのクリーム煮

オーブン料理は簡単でよい。手間をかけずに調理できるのにもかかわらず、食卓に並べたときは高級感を醸し出してくれる。このギャップを料理人は楽しむことができる。経済的な言葉を用いれば、費用対効果に優れているということだろう。でも、良いことばかり…

写像対象-カリー=ハワード同型対応

7.9 カリー=ハワード同型対応 世の中には、言い方は違っているのだが、同じことを言っているということが往々にしてある。前回の記事で、型定理と圏論は一対一に対応づけできると説明したが、その例の一つである。さらに、もう一つ対応するものがある。…

写像対象-型定理(続き)

7.8 具体例 指数対象\(A^{B+C} = A^B \times A^C\)は、Haskellの型シグネチャで表すと、 \begin{eqnarray} Either \ b \ c \rightarrow a \sim (b \rightarrow a, c \rightarrow a) \end{eqnarray} となることを前回の記事で説明した。それでは、この型シ…

写像対象-型定理

7.7 型定理(Type Theory) 型定理という言葉に戸惑う人も多いことと思う。日本語版のウィキペディアで型理論を検索するとあまりにも短い記述にがっかりするだろう。得られる情報も余りない。しかし、さすがに英語版の方には詳しく書いてある。その記述の中…

写像対象-指数対象

7.6 指数対象 写像対象には別の表現法がある。また、こちらの方がよく知られてもいる。それは指数対象と呼ばれる。対象\(A\)から対象\(B\)への射の集まり\(A \Rightarrow B\)を写像対象と呼んだ。同じように射の集まりなのだが、ドメイン\(A\)を肩に、コ…

写像対象-Haskellで表現する

7.3 写像対象とは ここでは写像対象を定義することにしよう。前回の記事で写像対象を説明するための図として下図を提示した。 上図で、\(Z\)は最善の表現であるとすると、これは\(A\)から\(B\)への可能な写像を重なることなくすべてを含むような関数の集…

伊豆箱根鉄道駿豆線沿いの遺跡を訪ねる

伊豆箱根鉄道駿豆線は東海道線の三島駅から伊豆市の修善寺までの19.8Kmを結び、車窓からは富士山を楽しむことができるローカル線だ。歴史的遺産が多く楽しむことができる。今回はこの路線の近くにある古い遺跡を訪れた。三島市の中心にあるのが伊豆国分寺で…

写像対象―入門

しばらく休みを頂いたが、この間、古代史の関係の書物を読み漁った。特に、松木武彦さんの本が気に入った。 『美の考古学:古代人は何に魅せられてきたか』と『旧石器・縄文・弥生・古墳時代 列島創世記』を、また、共著だが『弥生時代って、どんな時代だっ…

サラダたまねぎでコース料理を楽しむ

春の訪れとともに、水俣の復興に協力されている方から、新玉葱が送られてくる。これは「サラダたまねぎ」という名前で売られている。その名の通り瑞々しさが売り物だ。水俣の特産品を紹介しているブログには、「サラダたまねぎは、早い時期に収穫する(極早…

神奈川県中央部の勝坂遺跡公園を訪ねる

相模線にゆられて縄文の遺跡を訪ねた。これは横浜から出ている相模本線ではない。JRだ。神奈川県の中央部を縦断するように、東海道線茅ヶ崎駅と横浜線橋本駅の間を結んでいるローカル線だ。東京の近郊には珍しい単線運転でもある。往きは小田急線の海老名駅…

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

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

関手ープロファンクタ

6.10 プロファンクタ 1)双関手の復習 プロファンクタの話をする前に、双関手を再度勉強しておこう。関手と反関手は矢印が逆向きであるという関係を有していたが、双関手とプロファンクタも同じような関係にある。Haskellでは双関手はData.Bifunctorで…

関手―反関手

6.9 反関手 以前に、\(Reader\)と呼ばれる関手について説明したことがある。二つの射を得て一つの射を出力するという分かりにくい関手だったのではと想像している。圏論は、射を中心にして考えるので、射を射の入力や出力として利用するのは自然なのだが…