こんにちは! エムスリーエンジニアリンググループ、Unit7の丸山です。
2026年7月11日と12日の2日間開催された、関数型まつり2026に現地で参加しました。 関数型言語にあまり触れたことがないのですが、これまで業務で使ってきた言語とは違う考え方に出会えて、とても良い刺激になりました。
今回の記事は、そんな関数型まつりの参加レポートです。
関数型まつりとは
関数型まつりは、ScalaやOCaml、Haskellといった関数型言語に関するカンファレンスです。 関数型言語そのものの話だけでなく、PythonやTypeScriptなどのオブジェクト指向言語に関数型のエッセンスをどう取り込むかという発表もありました。
エムスリーは昨年に引き続き、スポンサーとして協賛していました。 今年のノベルティは、関数型言語のQuineが書かれたクリアファイルでした。

エムスリーの発表
今回の関数型まつりにエムスリーからは、2人のエンジニアが登壇していました。
OCamlで作ったアプリを実運用している(田尻さん)
以前このブログで紹介されていた、OCamlで作ったアプリについての発表です。
OCamlでアプリケーションを開発して実際どうだったのかが、技術・進め方の両面から語られていました。 開発言語としてOCamlを採用した理由や、採用にあたってのハードル、それをどう乗り越えたかについても触れられていました。
個人的に、「何使ってもいいなら、人間が気分良い言語が良くないですか?」という主張はとても好きです。
なぜ多くの言語はHigher Kinded Typesをサポートしないのか(松本さん)
Higher Kinded Typesは、ScalaやHaskellなどで型システムの表現力を大きく高める機能ですが、TypeScriptやRustなどの言語はこの機能をサポートしていません。 この発表では、Higher Kinded Typesを多くの言語がサポートしない技術的・実務的な理由を掘り下げつつ、どんな場合に本当に必要で、どんな場合はジェネリクスで十分なのかが示されていました。
Higher Kinded Typesをサポートしている言語でも型推論がすべての場合に働くわけではなく、一定の制約やユーザによる型注釈を前提として実現しているという点が興味深かったです。
セッション紹介
2日間で聴講したセッションの中から、特に印象に残ったセッションを紹介します。
関数型の考えをTypeScriptに持ち込んで、テストしやすい純粋関数を増やす—Functional Core, Imperative Shellの実践—
概要
Shimmyさんの発表です。 TypeScriptのWebアプリケーション開発にFCIS(Functional Core, Imperative Shell)パターンを適用した実践が紹介されました。 「外部I/Oを含むか」「同じ引数を渡しても結果が変わりうるか」という問いで関数を分類し、純粋な計算と副作用を伴う操作を層として分けるアプローチをとっていました。
一方でTypeScriptには、副作用をコンパイル時に検知しやすい形(型)で管理する仕組みが言語標準として整備されているわけではありません。 発表では、純粋な処理と副作用のある処理をディレクトリ単位で分け、静的解析ツールで層間の依存ルール(純粋な層から副作用のある層への参照禁止など)を定義していました。 そのうえで、pre-commitフックで違反を機械的にブロックする工夫が紹介されていました。
感想
業務でよく使うTypeScriptに、関数型の考えをどう持ち込むのかが気になって参加しました。 自分のチームではアンケートを作成するシステムをメンテナンスしていて、発表では自由に作れるフォームテンプレートのバリデーションが扱われていたため、とても親近感がありました。 「TypeScriptの木目に沿う」という表現に象徴されるように、ライブラリを使わず言語仕様を活かして開発するメリットが具体的に語られていて、とても勉強になりました。
Leanで学ぼう等式推論(証明もあるよ!)
概要
関数プログラミングの魅力の1つは、プログラムを実行手順ではなく式として扱い、等しい式へと変形しながら理解できることです。 この発表では、Leanを使って機械検証しながら式変形を進める方法が紹介されました。
Leanは純粋な関数型言語であり、定理証明を支援する処理系でもあります。 式変形の各ステップをLeanで機械検証すれば、元の実装と同じ挙動をすることを確認しつつ、素朴な実装をより高速な実装へと書き換えていけます。
感想
以前、チーム内勉強会でHaskellの本を輪読したことがあります。 そのときは、式(プログラム)を変形して動作が変わらないことを確かめながら、パフォーマンスを向上できることに感動しました。 一方で、本に出てくる式変形が何をやっているのかを手作業で追っていくのは、正しく式変形ができているかという観点で大変でした。
発表では、Leanなら式変形をプログラムとして表現し、インタラクティブに結果を追いながら正しいことを機械的に確認できると紹介されていました。 手作業で苦労した経験があるだけに、自分でも試してみたいという気持ちになるセッションでした。
終わりに
参加者の方と会話していると、「エムスリーってOCaml使っている会社ですよね!」と言われることが多かったです。 田尻さんの発表のとおり、エムスリーにはOCamlで作ったアプリも実運用しているチームがあります。 こうした場で関数型言語の会社として認知されているのを実感できたのも、今回の収穫でした。
素敵な場を用意してくださった運営スタッフの皆様、そしてスピーカーの皆様、ありがとうございました!
We are hiring!!
エムスリーエンジニアリンググループでは、一緒に働く仲間を募集しています! 関数型言語が好きな方も、そうでない方も、まずはカジュアル面談から、以下URLよりご応募をお待ちしています。