読者です 読者をやめる 読者になる 読者になる

bitterharvest’s diary

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

写像対象―入門

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

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

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

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

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

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

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

関手ープロファンクタ

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

関手―反関手

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

秦野市桜土手古墳公園

小田急線を利用して秦野市にある古墳を見に行った。最寄り駅は渋沢である。北口に出てまっすぐに丹沢の方に向かって歩く。島津製作所や日産自動車などの工場街の中にあるのが桜土手古墳公園だ。 中に入るとすぐにこんもりと盛り上がった小さな丘がある。古墳…

関手―余積をファンクタで実現する

6.8 余積をファンクタで実現する 前回の記事では関手を利用しての積と余積を定義する中で\(Identity\)を用いたが、その詳しい説明はしなかった。そこで、ここでは、まず、データ型\(Identity\)の定義から話を始めよう。関手\(Identity\)の互換図は下図の…

関手ー積と余積

6.7 関手ー積と余積 前回の記事で関手のおさらいをした。一段と理解が深まったことと思う。今回は、再び積と余積について論じよう。前々回では、双関手としての積と余積について述べたが、ここは、この話ではない。もう一度、積と余積の定義に戻って、そ…

市ヶ尾の横穴墓群と古墳群を訪れる

東京の冬は、寒い寒いと挨拶するときに常套句としてかわすが、本当は過ごしやすい。20年以上も前になるが、隣に住んでいたドイツ人が、東京の冬は素晴らしいといっていた。ドイツの冬はどんよりと曇っていて、夜の帳が下りるのも早いそうだ。今日は快適な冬…

関手―Haskellで関手をどのように理解したらよいか

6.6 Haskellで関手をどのように理解したらよいか 圏論の中で重要な概念の一つは関手(Functor)だ。そして、Haskellでも最も便利な道具の一つはファンクタである。数回の記事の中で、いくつかの例を挙げながら、圏論での関手を説明してきた。また、それとの…

関手ー双関手

6.5 双関手 1)関手としての積と余積 前々回の記事で、Haskellが用意している関手のリストを示した。 Prelude> :i Functor class Functor (f :: * -> *) where fmap :: (a -> b) -> f a -> f b (<$) :: a -> f b -> f a {-# MINIMAL fmap #-} -- Defined…

関手ー圏の圏

6.4 圏の圏 圏と圏とをつなぐ射は関手という特別な名前がついているが射であることに変わりはない。従って、二つの関手を合成することもできるはずだ。図のように、三つの圏\({\mathcal C}\),\({\mathcal D}\),\({\mathcal E}\)を考えてみよう。\({\mathc…

関手ー一般化

6.3 一般化 Maybeを利用して関手を説明したが、その他にもいろいろな関手を考えることができる。それらは(Maybeで説明した)fmapの実装が異なるだけだ。Javaを知っている人であればインターフェースを用いて実装したらと考えるだろう。Haskellにもオブジェ…

関手ー関手であることの証明

6.2 関手の証明 かつてバークレイの大学院生だった頃に指導教授からプログラムの正当性を研究テーマにしてみないかと誘いを受けたことがある。当時のプログラミング言語と言えばFortlanで、構造がぐしゃぐしゃなプログラムを検証することなど不可能だと直…

関手ー定義

6.関手 関手は圏論の中で最も重要な概念である。圏論では自然変換(Natural Transformation)が重要であるが、これの根幹をなすのが関手である。 6.1 関手の定義 圏論は数学的な構造を対象としての点と対象を結ぶ射としての矢印で表している。二つの圏が…

圏論での積と余積―代数的データ型

5.6 代数的データ型 引き続き、Bartosz Milewskiの動画を元に、話を進める。 1) 乗算(Multiply) デカルト積の圏について、前々回の記事で説明したが、積と名前がついているので、四則演算での乗算とかかわりがありそうである。 乗算\(\times\)は、交換律(…

圏論での積と余積―余積

5.5 余積 オーストラリアオープンテニス2017は、昨日、男子決勝戦が行われた。テニス界のレジェンドといわれるフェデラーとナダルが決勝で争うこととなり、これ以上、楽しませてくれる組合せはなかった。 グランドスラムの優勝回数で、二人は歴代の1位と2…

圏論での積と余積―デカルト積

5.4 積の圏 1)デカルト積 デカルト積(Cartesian Product)は、直積集合、直積、積集合などと呼ばれたりする。これは集合の集まりに対して、それぞれの集合からひとつずつ元を取り出して組にしたものである。 例えば、二つの集合\(A,B\)に対し、それらの…

圏論での積と余積―双対という概念

5.3 双対という概念 普遍性(Universal Property)は圏論の中では重要な概念である。前回は、始対象と終対象について論じた。対象という言葉は、何かの集まりを表したものであり、抽象的な概念である。対象は、集合であるかもしれないし、グラフのノードの…

豚肉のシードル煮込み(北フランスノルマンディー地方)

横浜の港北ニュータウンにあるノースポートを訪れたとき、ブルーミング・ブルーミーというスーパーマーケットでシードルを発見した。シードルは、フランスのノルマンディー地方のお酒で、ブドウの代わりにリンゴを発酵して作られる。シードルを知ったのは、2…

我が家の定番になりだした「だし巻き卵」

正月気分もそろそろ終わり。昨日(7日)の朝は七草がゆを食べて、正月との折り合いをつけて、今年の活動を開始する。この日は、川崎の等々力緑地にある市民ミュージアムに講演を聞きに行く。暮れにも参加したので、連続で「かながわの最初の現代人」の話を伺っ…

ハンガリー料理のパプリカチキンを味わう

NHKのBSプレミアムで、朝ドラの「べっぴんさん」を見た後、テレビをそのままにし、新聞を読み始めた。そうこうしているうちに、ハンガリーという言葉が耳に入ってきたので、ふとテレビの方に目を向けると、ヨーロッパ鉄道の旅をしている関口知宏さんがセルビ…

圏論での積と余積―終対象と始対象

今年最後に読む本を定めて、28日に市の図書館から網野義彦著『日本の歴史のよみなおし(全)』と山本淳子著『源氏物語の時代 ― 一条天皇と后たちのものがたり』を借りた。『日本の歴史のよみなおし』は、中世の時代を中心にいくつかのテーマに沿って横断的に説…

モナドを音楽の力を借りてアナログ的に説明する

4.8 モナドを関手(ファンクタ)を用いずに説明する 数学の本を読んでいると、1ページを読むのに数時間もかかることが往々にして起きる。特に、定理があってその証明が書かれているときがそうだ。純粋な数学的用語で書かれているときは、その背後にある概念…

ブライン液につけて、ジューシーなターキーを食卓に

今年もまた、ターキーを焼く季節がやってきた。孫や子供たちの都合によって、作る日は異なる。今年は、23日がよいということなので、クリスマスイブのさらにイブに食することとなった。ターキーの焼き方は、イギリス滞在経験の長い隣の家から教えて頂いた。…

ドイツ料理「リンダールーラーデン」を楽しむ

クリスマスが近づくとシュトレン(Stollen)を見かけるようになる。ドイツの菓子パンだが、伝統的にクリスマスの時期に食されている。先日、Kaldiで大量に販売していた。季節ものなので購入したが、少し、甘すぎるかなと感じた。そうこうするうちに、ドイツ料…

称名寺(金沢文庫)を訪れる

称名寺を訪ねた。森茂暁著『闇の歴史、後南朝』を読んだのがきっかけになった。室町時代の幕開け(1336年)とともに始まった南北朝時代は、1392年に北朝が南朝を吸収して合体することで終了する。その後の歴史は合体を主導した側(北朝)を中心に描かれた。そし…

国宝・円覚寺舎利殿を初冬に訪れる

何回となく訪れたことがある円覚寺だが、舎利殿だけはいつも遠目に見るだけで、訪れたことがない。今回(12月10日)、運よく、舎利殿を訪れるイベントがあり、それに参加した。円覚寺は、鎌倉時代の1282年に建立された。モンゴル帝国(元)が日本を攻めてきた元…

寒くなったらボルシチ

野菜売り場の店頭でビーツを見かけることが多くなった。先日のテレビによれば、昨年に比べて7倍も売り上げが増えたと野菜売り場の担当者が伝えていた。ビーツは、英語ではbeetrootという。赤蕪とも聞いていたので、カブの一種かと思っていたが、そうではない…

秋深き伊豆修善寺を訪れる

11月末(27日―30日)に別荘の冬仕度をするために伊豆に出かけた。旅行する3日前(24日木曜日)には、東京では観測史上初の11月の積雪を記録した。我が家の庭もちょっとした風情を感じさせる冬景色になった。 伊豆は暖かいところと思われがちだが、別荘のある地帯…

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

『プログラマのための圏論』はこれまでの分をまとめてPDFファイルにしました。参考にしてください。

カレー風味のニョッキ

昨日、近くのカルディで三色ニョッキを手に入れた。ニョッキはジャガイモと小麦粉から作られるイタリア料理だ。そこに、トマトを加えると赤に、ほうれん草だと緑になる。これを利用したのが三色ニョッキだ。ニョッキの由来をウィキペディアで調べてみると、…

プログラムでの圏の構成を完成させる

4.7 C++プログラムから圏を作成する(続き) 前回の記事で、曜日を進めるプログラムの開発状況を手順を追いながら、説明した。このプログラムは、曜日を進める関数\(increase\)と遅らせる関数\(decrease\)から出発した。最初に作った関数は、値をどこにも記…

C++のプログラムも圏に変えてしまおう

4.7 C++プログラムから圏を作成する いろいろな圏を見てきたので、ここでは、プログラマーにとっては大事なプログラムを圏として構成することを考えよう。 1)曜日を進めるプログラム ここで、作成するプログラムを曜日を進めたり遅らせたりするプログラ…

二項演算子からモノイド圏を作る

前回の記事は、ホモトピー論まで含まれていたので、とても高度な数学的概念が含まれていた。それにもめげず、沢山の人が記事を読んでくださったようで、感謝している。今回は現実の世界に戻して、二項演算子の世界を圏にすることを考えよう。 4.6 二項演…

様々な関係から圏を作成してみよう

4.様々な圏の作成 圏に馴染むためにいくつかの例を挙げることにしよう。 4.1 空圏 圏の中でもっとも単純な圏は、対象も射も持たない。このため、恒等射も存在しないことになる。これは空圏(圏0)と呼ばれる。その構成を挙げておこう。 1) 対象:なし 2) …

集合から圏論へ:ミクロな世界からの宇宙への旅立ち(2)

3.2 集合の要素を射に 集合の世界は要素を中心に考えるが、圏論の世界は射を中心に考える。そこで、集合を考えるとき、その要素を射に変えるものが必要となる。 その役割を果たしてくれるのが、一つだけの要素からなる集合である。この集合はシングルトン…

集合から圏論へ:ミクロな世界からの宇宙への旅立ち(1)

3.集合の世界から圏論の世界へ ごちゃごちゃしたミクロの世界をかなぐり捨てて雄大なマクロの世界(宇宙)へ旅立つことにしよう。数学でのミクロな世界は集合で、雄大な宇宙は圏論である。集合は、要素の集まりとして定義される。また、集合を論じるときは…

射は閉じている:どれだけ合成しても大丈夫

2.4 合成 1)圏の構成要素 ここでは、これから説明する合成も含めて、圏を構成する要素についてまとめておこう。圏は次の構成要素から成り立つ。 1) 対象\(A,B,C,..\)を有する。 2) 射\(f,g,h,..\)を有する 3) 射はドメインとコドメインを有する。なお、…

量子力学とHaskell - 目次 

1.身近な存在としての量子力学(1):MRI(磁気共鳴画像診断装置)、(2):ヨーロッパコマドリ、(3):進化論、(4):光合成、(5):光合成(続き)、(6):光合成(続き)、(7):ケット、(8):ケットをHaskellで表現する、(9):重ね…

ハロウィン・パーティーで闊歩するバターナッツかぼちゃのポタージュ

月末はハロウィンだ。もともとは古代ケルト人の収穫を祝うお祭りのようだが、いつの間にか、日本にも定着したようで、テレビでは、連日、渋谷での警戒態勢を伝えている。ハロウィンが近づくと、日本からルイジアナ州バトンルージュへ留学していた高校生が、…

自己を表現する恒等射

2.3 恒等射 恒等射は自らを自らに写す射だ。これだけのことなので、今回の記事は簡単に済ますつもりでいた。しかし、沢山ある射の中で恒等射を特別に圏の定義の中に含める必要がなぜあったのだろうか。恒等射は英語ではIdentity(あるいはIdentity Morphis…

圏論は射から

2.2 射 圏論の中で一番重要な役割を担うのは射(ArrowあるいはMorphism)である。射は対象を対象へと移す(写像という用語を使ったときは「写す」といったほうがよさそうだが、射は矢を射るという意味で用いているので「移す」という漢字を使う)。射は、他…

境を明確にする対象

2.圏の定義 圏論の核となる圏の定義はとても単純である。抽象化は、細かいことを切り捨て、本質となている部分を取り出していく作業である。別の言い方をすると、数学の様々な分野での固有な部分を切り捨て、それらに共通する部分を抜きだすことである。圏…

なぜHaskell、なぜ圏論なのか

1.初めに これまで、さまざまな言語でプログラミングしてきたが、一番満足しているのはHaskellである。なぜという問いに一言で答えるならば、バグが入りにくい、あるいは、プログラムが信用できるということだろう。 この記事の前に、量子力学の世界をHask…

上総国分尼寺を訪れる

古代史の勉強の一休みに、永井路子の『美貌の女帝』を読んでいる。主人公は氷高皇女(ひたかひめみこ、680-748)だ。女性の持統天皇の孫娘で、元正天皇となった(彼女の弟の軽皇子は文武天皇になる。この姉弟の母の阿閇(あへ)皇女は、文武天皇がなくなった後、…

量子力学の世界を垣間見る(7):シュレディンガー方程式

昨日(9月22日)は、中学時代の同級生と大相撲秋場所を見に行った。 横綱昇進がかかっていた稀勢の里が、前の日に敗れて3敗を喫したため、今場所の興味が薄れてしまった直後の観戦となった。他方で、先場所、休場した豪栄道が、信じられないほどの充実した相撲…

量子力学の世界を垣間見る(6):ハミルトニアンの活用

この3月に退職して以来、これまで専門としてきた情報科学の研究から離れて、日本の古代史(平安時代の終わりまで)を勉強している。僕が高校生だった頃は、社会科の科目には、社会、世界史、日本史、地理の4科目が設けられていた。その内で、社会は必修で、残…

量子力学の世界を垣間見る(5):離散系から連続系へ

これまで、Haskellと結びつけながら量子力学の世界を説明してきた。そのため、Haskellに邪魔されて量子力学の世界が分かりにくくなったかもしれない。そこで、この記事では、これまでの話をまとめながら、量子力学の世界を、離散系から連続系へと展開させて…