[これは何]
関数型まつり2026への参加レポート
自己紹介
Yuma Satake
プロフィールに「Webフロントやめます」って書いて3年が経ちました。
普段はWebエンジニアをしています。
- 名前:Yuma Satake
- 所属:DMM.com
- 職種:Webエンジニア
- 趣味:車・イベント運営
- Twitter:@yuma_satake22
関数型まつり2026に参加しました
「関数型まつり2026」に参加してきました。
普段の業務でHaskellやF#などを使っているわけではなく、TSをメインで書いています。
そうした中で、関数型の考え方からよりよい設計ができるエッセンスが持ち帰れないかと思い、参加してきました。
感想
全く悪い意味ではないという前置きの上でですが、本当に今まで参加をしたカンファレンスと全く異なるカンファレンスでした。
池田さんとも喋ってた内容ですが、良い意味で「技術を目的にしている」方が多いなと思いました。
他のカンファレンスだとおおよそ50%ぐらいのトークはライブラリや設計の採用事例みたいな割合の中、関数型まつりでは8割以上が考え方や理論の話が中心でした。
かなりのセッションで数学の概念が持ち出されていましたが、私は高校をサボってかつ専門学校に進んだので、マジで一生Claudeとセッションを聞いてました()
視聴したセッション
都合でDay2のみの参加だったので、この日聴講したセッションの感想をまとめました。
ElixirのGenServerでアクタープログラミングしてみよう 〜Pub/Sub使って広域分散環境でマイグレーションも出来るよ〜
初っ端の自己紹介から、高知工科大学の教授をされてみえたり、通信事業会社を経営されてたり属性もりもりでびびりました。
多くの登壇者の皆さんの関数型愛の始まりって何だろうと思ってましたが「もともと並行プログラミングをやろうとしてPythonに手を出したものの気持ちよく書けず、最終的にElixirに辿り着いた」というお話が導入であり「そうやって辿り着くのか...」と思いました。
Elixirの「Let it Crash」という、例外をthrowするのではなくプロセスを一旦落として作り直すという思想は面白いなと思いました。
並行プログラミングについて、IoT機器ごとに別プロセスを立てて抽象化できたり、Pub/Subのような仕組みをプログラム内で完結して実現できるという話もなるほどなぁと思いながら聞いていました。
普段、こういった仕組みはクラウドインフラ側で組む前提で考えてしまっていたので、そもそも言語レベルでこれをやるという発想自体が新鮮でした。
セッション最後のプロセスマイグレーション(動いているプロセスを別のサーバに移動させる)の実演がとても盛り上がってました笑
代数的エフェクトの高速化技法と発展的な機能
代数的エフェクトは、使用しているエフェクト(ファイルシステムなど)と発生しえる例外を列挙して型として扱えるようにするもの、という理解で聞いていました。
最初は「これResult型の話に近い?」と思って混乱していましたが、「代数的エフェクトをインターフェースで表現しようとすると、実装で使うエフェクトにインターフェースが依存してしまう(インターフェースが具体に依存してしまう)」という話が出てきたところで、ようやくそういう嬉しさがあるのかという話についていけました。
後半の「非スコープ再開」あたりからは正直理解が追いつかず「良さそう!むずいね!!」と笑顔で聞いてました(諦め)
美しいコードを書くためにF#を学んでみた話
「設計が美しいコード」とは何なのかを追い求めたときに、それは関数型言語のドメインモデリングにあるよね、という話でした。
自分も同じモチベーションで関数型まつりに参加をしていたので、やっぱり関数型ドメインモデリング読んでみなきゃなと思いました。
なぜ多くの言語はHigher Kinded Typesをサポートしないのか
そもそもHigher Kinded Types(HKT)を初めて知りました()
話の中では、HKTは素晴らしい機能な一方、サポートするとコンパイル時の計算コストの肥大化/ランタイム上のパフォーマンス低下が発生する可能性があること。
そして多くの言語はシンプルさやメモリ安全性を優先していること、が理由として挙げられていました。
Haskellのようにサポートしている言語も、完全な形ではなく不完全な状態で提供している、という話を聞いて面白いなと思いながら聞いていました。
Welcome to the "Parametricity" 🏙 − Generic だけど Specific な世界 −
対象聴講者に「集合論の初歩的な記法を理解できる方」とあったので、流石になんとかなるだろと思って聞きに行きましたが、正直全然頭に入ってきませんでした()
途中から数式ベースで話が進んでいき、正直リアルタイムでは全然理解できなかったので、資料が公開されたらAIに解説してもらおうと思います()
壊れたパーサからはじめる関数型設計と構成的なパーサ
LRパーサーの話から入り、壊れたパーサを直しながら関数型設計の考え方に踏み込んでいくセッションでした。
「関数型はhow to do ではなく what to do(どうするか、ではなく何をするか)」という言葉が確かになと思いながら聞いていました。
パーサーを勉強することは、関数型の設計思想を学ぶことにとても相性が良い、という締めも納得感がありました。
パッケージマネージャー Nix はなぜ純粋関数型言語で設定を記述するのか
「関数型パッケージマネージャー」とかいう用語がまず面白かったんですが、出てくる話がマジでめちゃくちゃ関数型の利点を活かしてて面白かったです。(マジでスライド読んでほしい)
Nixは、同じ依存を持っていてもそれぞれを別で管理する仕組みになっていて、ビルドの段階で使うツールを全て事前に定義するという話が印象的でした。「何を使って、どう処理するか」を宣言的に定義するというアプローチは、まさに関数型だなぁと考えていました。
暗号実装における辛さを関数型によって解決してみよう
「そもそも脆弱になっているのは、脆弱に使えてしまうAPI設計が悪い」という主張から入り、暗号処理を型で堅牢化していく話でした。
現在の値がバリデーション済みか、認証済みか、といった状態に合わせて型そのものを変えていき、代数的データ型で処理する。「状態のチェックを増やすのではなく、そもそも呼び出しの可能性自体を型で拒否する」という考え方は、暗号領域に限らず全ての実装で適用できる内容だなと感じました。
その他
会場が中野セントラルパーク カンファレンスで、TSKaigi 2024ぶりだなと思って懐かしい気持ちでした。
会場では、スポンサーのWonderSoftさん さんによるコーヒーが提供されており、めちゃくちゃ美味しかったです。(なぜか併せて提供されていたメロンソーダの写真しか撮ってなかった)
ブースにお伺いした時にエンジニアの方がみえなかったので、コーヒーの会社じゃなくてー...という説明を受けました()
最後に
Day2のみの参加でしたが、全然知らない世界が広がっていてほんとに面白かったです!!
開催してくださった運営の皆さん、素敵な発表をしてくださった登壇者の皆さん、スポンサーの皆さん、ありがとうございました!!!
資料