戸崎さんの紹介ページhttp://www.elv.tokyo/mindsets■計算の並行性が重要になってきているいまなぜ圏論の考え方が重要なのか、その背景から話が始まりました。「今は計算の並行性がとても重要な時代になっています。それはムーアの法則の限界によって、スケールアップよりスケールアウトの時代になっていること、大量のデータを扱う必要が出るようになってきたこと、などがあります。大量のデータを分散並列に扱う処理としては、例えばページランクの計算があります。いう方法でうまく扱える例です。■数学の関数は、並行計算のためのよい性質を持つ「MapReduceで並列処理がうまくいく理由は、計算中に既存の情報を更新しない、システムの状態を変化させないといった性質があるからです。」この設計のもととなった「考え方」が、入力と出力の関係が不変であること、つまり参照透過性というやつですね。入力に対する出力がいつも同じということは、関数は静的なテーブルみたいなものだということです。「数学の関数は、入力データと、出力データを対応させた、静的なテーブルがあるのと同じです」たとえば、9時の4時間後は1時、みたいな計算は上の右のようなテーブルを静的に持っていればわかります。■関数型言語は、ITの関数を数学の関数に近づけようとする「しかし実際のICTシステムでは計算に時間がかかるため、たとえば計算中にテーブルが変更される可能性があります。ICT技術者は、この違いに折り合いをつけなければいけません。その実践として関数型プログラミングがあるのです。使ったデモがたくさんありました。すると、xのy時間後が求まります。実は、このとても単純な関数が、ラムダ、群論、圏論、モノイド、ファンクタ、モナドといったものの説明につながります。本日のポイントはこれです。それを応用して作られています。■圏論の考え方とはなにかとりあえず圏論の構成要素です。対象の集まりと、それらをむすぶ矢印(マップ)、それと矢印の合成。基本的にはこれだけです。矢印の合成については恒等律と結合律を満たすというルールがあります。具体例を見てみましょう。圏の定義を満たす具体的なものとして「Hask圏」があります。対象はHaskellのデータ型、矢印はHaskellの関数、矢印の合成は、関数の合成です。関数を合成したものはやっぱり関数だ(推移律)みたいなことを順に確認していくと、確かに圏になっていることがわかります。具体例として出てきたのは、なんとiPS細胞の話でした。細胞は、タンパク質を使って新たな細胞を生み出します。みたいな上流から下流への流れが普通はあります。ところで、iPS細胞は皮膚細胞のようなふつうの細胞からES細胞のような幹細胞を作るというものでした。皮膚細胞→ES細胞のように上流に戻る矢印です。現実の世界で、上流に戻るような操作やタンパク質を発想するのはちょっと難しいことです。圏論の世界で考えれば、それは単なる矢印です。結局、ある細胞をもとに矢印を合成した結果としてES細胞になる矢印を作ればいいんだ、ということになります。「ICTの対象も、こんなふうに圏論の考え方で捉えると、既成概念にとらわれない、対象間の関係の新たな価値に気がつくかもしれません。最後に、モナドについても一応紹介しておきましょう。いうと訳がわからないですが、本当はこの前に順を追った丁寧な説明や豊富なデモがあり、とてもすんなりと理解できました。■「考え方」を勉強するとは?今回の勉強会は「ICTを支える『考え方』シリーズ」の一つで、他にも統計の勉強会なんかもあるんだそうです。講師の戸崎さんはそのディレクターでもあるということで、改めて趣旨を伺ってみました。して「考え方」についての勉強会を企画したんでしょうか?「この勉強会のシリーズは、ICTを支える数々の専門分野において、パターン化され、実証されてきた、この分野ではこう考えるのが基本という「考え方」を、専門分野を横断して身につけることを目指しています。偏りや矛盾のない、システムを組み立てる力、これからのICT技術者にとって必要不可欠な力を養うシリーズとして、提案させていただきました。考え方にフォーカスした勉強会というのは珍しいと思います。重要なのは個別の知識より考え方ですよね。それを知って応用できればいいわけですからね。■まとめ圏論というとむずかしいイメージがあるのですが、定義を一個ずつ追っていけば割合ふつうに理解できるものだな、と思いました。並行性が重要な時代になり、そのために関数型言語が重要になった。その背後には数学の、とくに圏論の考え方があるんだということがよくわかりました。数学の考え方(圏論編)」http://www.elv.tokyo/mindsets原稿:三土たつお1976年生まれ。プログラマー、ライター。プログラマーとしてはふだんPHPを書いています。ライターとしてはニフティのデイリーポータルZとかで書いています。著書に「街角図鑑」(実業之日本社)など。#2」...2016.09.01前へTOPに戻る次へおすすめの記事2019.12.16エンジニアにとってマイナビで働く魅力とは!?『マイナビTec...2019.09.13失敗LT大会。ルーキーエンジニアが「あるある」失敗をライトニ...2019.09.11失敗LT大会。Corporation。