はじめに
関数型ちょっと興味ある入門すらできていない者です。 FPに少し興味が出始めている中でたまたま同僚がスタッフをしていてイベントに興味を持った事が参加のきっかけです。 昨日はSRE Next day2に行っていたので朝は起きれませんでしたが、無事少し遅れて着きました。
Rinrin / りんりん (@rin2yh) on X#fp_matsuri 着いた!
X (formerly Twitter)
それはさておき、今回は以下の目的で関数型まつりday2に参加しました。
- FPやったことないけどちょっと興味あるので、今後FPを勉強していくか判断する材料を集める
- 設計理論に通ずる何かを獲得する
少しだけイベント概要を紹介
ご存知の方は読み飛ばしていただいて大丈夫です。
以下、関数型まつり公式サイトより引用です。
関数型プログラミングはメジャーな言語・フレームワークに取り入れられ、広く実践されるようになりました。 そしてその手法自体も進化し続けています。 その一方で「難しい・とっつきにくい」という声もあり、十分に普及しているとまではいえないかもしれません。
私たちは様々な背景の方々が関数型プログラミングを通じて新しい知見を得て、交流ができるような場を提供することを目指しています。 普段から関数型言語を活用している方や関数型プログラミングに興味がある方はもちろん、最先端のソフトウェア開発技術に興味がある方もぜひご参加ください!
イベントの詳細は以下のサイトをご覧ください。
印象に残ったセッション
今回も印象に残ったセッションを綴っていきます。 順番に特に意味はなく、単に発表を見た時間の順番です。興味深かったり、おもしろかったりした セッションばかりでしたが、ブログの体裁上数点に絞っています。
また、私の感想ではなく概要を知りたい場合はforteeの方に概要や前提知識、得られるもの等記載されていますので、そちらをご覧ください。 スライドのリンクがないものは私の検索力不足で見つけられていないので、ご容赦ください🙏
2026 年に読む “The Definition of Standard ML” 〜 現代の堅牢なソフトウェア設計の源流として by 芳賀 雅樹 (silasolla)
基本的な式から意味論や推論規則を解説した上で、堅安全性について話すなど、FP初心者でもわかりやすいセッションでした。 推論規則やStandardMLを普段見ない/聞かない私でも直感的に理解しやすく、数式も雰囲気で読めました。(物理好きだったので読めてしまった可能性もありますが)
Standard MLのThe DefinitionとWeb Assemblyに共通点があり、The Definitionを読めればWasmの仕様も読めるはず、というのはおもしろいなと思いました。
スライド: https://doc.silasol.la/talks/2026-07-12_fp-matsuri/slides.pdf
美しいコードを書くためにF#を学んでみた話 by 0yu
美しいコードを書くために、型を集合と捉える考え方と書籍からの学びとTSでの実践を話していただきました。 私もよく似たような型を一定の論理的?概念的な単位で分けていて、型を集合として捉える、がしっくりきました。 開発体験の良くメンテに優れるコードを書くために勉強してみたくなりました。
スライド:
美しいコードを書くためにF#を学んでみた話関数型まつり2026 Day 2の資料です。
https://2026.fp-matsuri.org/
Speaker Deck
モナドっていうほど関数型プログラミング関係なさそうだよな by 山本悠滋
モナドの理解は浅いのですが、知れば知るほど普通の関数 (インターフェースなどで分離したものに近い)のイメージを持ってしまい、関数型とは?と思っていた 私に刺さりました。また、凝集度の話にも通じるようなところがあると思っていて、それを関数中心にすると モナドの話にも繋がってきて理解しやすくなるのかなと思いました。
メモ
モナド
- Stateモナド
- 状態の初期値を受け取り、結果以外を見える形で返す
- 状態の変化を隠し、他のところは純粋な関数だけになる
- 隠したところだけ状態の変化が生じる事がデメリット
- 実際には普通の関数と変わらないIOモナドもある
- 純粋関数を扱うのがFPなら、離れていきそうに見える
FPは関数型で純粋関数が中心だが、メリット故の制約もあるので、モナドを活用することも大事。
パッケージマネージャー Nix はなぜ純粋関数型言語で設定を記述するのか by ryu
最近流行りの?Nixの仕組みを関数型と絡めて解説いただき、Nixの理解が深まりました。 副作用を隔離・管理しやすい関数型プログラミングのモデルとパッケージ依存の課題の相性の良さを感じました。 また、zennで「ちいさくはじめる Nix」を執筆されていて、勉強やdotfilesでの管理など活用させていただきました。 その節は大変お世話になりました、ありがとうございました。(個人的な感謝)
パッケージマネージャー Nix はなぜ純粋関数型言語で設定を記述するのか | ドクセル関数型まつり2026 登壇資料 2026/7/12
Docswell
メモ
Nix derivation
- 精緻化されたレシピ、使用するツールも含めた入力が定義される。
- shellすらほとんど何もできないレベルのサンドボックス環境でビルドすることで、暗黙的な依存を減らしている。
- インターネットアクセスによる不確実性は事前に定義したハッシュと一致するか検証してなくす
ビルドは関数のように、drivationを受け取ってビルドし、結果を出力する。 サンドボックスや外部アクセスを隔離・分離、出力先もコントロールする。
Nix Storeは不変性の思想が感じられる。 関数合成とderivation参照が似ている。
アルゴリズムは何を圧縮しているのか: Haskell から育った「圧縮代数」というメンタルモデル by naoya
圧縮・要約することをFPの用語でマップするとアルゴリズムやデータ構造におけるトレードオフがより説明可能になった話だと捉えました。 単語の意味として、和はsummarize・要約なのでそういったところからも類似性を感じました。 データ構造と紐付けてトレードオフをより理解するために使う発想はなかったので新鮮な感覚でした。
メモ
区間和
- 自由な数字の構造から圧縮した要約の世界に写像して、計算しているから計算量が下がるのではないか
ローリングハッシュ
- 連続する文字列の意味を壊さずにハッシュ値へ圧縮
セグメント木
- 全部潰し切らずに過程を残しながら圧縮
- O(logN)になってしまうが、柔軟性を得られる
他
他に今回聴講したセッションです。ブログがあまりにも長くなり過ぎてしまうので 簡易に記載しています。
なぜ多くの言語はHigher Kinded Typesをサポートしないのか by Ryo Matsumoto
- 多くの言語の設計判断について解説する内容です
- Higher Kineded Typesを知らなかったので、知っているとよりおもしろい発表だと思います!
スライド: slides-export.pdf Google Docs
継続モナドとリアクティブプログラミング by ゆきくらげ
- 自作しているライブラリ、Quonでリアクティブプログラミングと継続モナドを活用されている話でした。
- もう少しモナドを理解するとよりおもしろそうな発表でした!
ぼくのかんがえたさいきょうの alt TLA+ by Show
- 機械語のコンパイルとのアナロジーを生かしてTLA+のコンパイラを作った話です
- 他にも構文解析やコンパイラの仕組みを活用してい流ので、そういった観点も得られたと思います
おわりに
まず目的を振り返ると、今回の以下でした。
- FPやったことないけどちょっと興味あるので、今後FPを勉強していくか判断する材料を集める
- 設計理論に通ずる何かを獲得する
両方とも達成できたと思います。 あまり数学は得意ではないのですが、昔物理が好きだったこともあり、FPの考え方はおもしろく、興味深いものに思いました。(実は適性があったのかもしれません?) また、FPの考え方で純粋に物事を説明可能にできるだけでなく、 ロバストなシステムを開発することにもいきそうだとも感じました。 これからゆっくり勉強していきたいと思います。
大変興味深いイベントを企画・運営していただいたスタッフの皆さん、 素晴らしいセッションを発表された登壇者の皆さん、スポンサーの皆さん、ありがとうございました!