👽

関数型まつり2025まとめ&感想

に公開
1

こんにちは、skytomoと申します!

この記事は関数型言語に疎い人(著者)の視点から見た関数型まつり2025を書きます。
来年、参加しようか迷っている方に参考になればいいと思っています!

関数型まつり2025について

「関数型まつり2025」は関数型プログラミングのカンファレンスです!
関数型まつりとしては初めての開催ですが、前身としてScalaMatsuriがありました。

ウェブサイト:https://fortee.jp/2025fp-matsuri

参加理由

普段は業務でRubyを書いています(!?)。
Rubyは関数型言語とは程遠く、私自身も関数型言語及びその周辺知識がほとんどありません。
なぜ参加したのか気になると思いますが、今回参加したのには理由がふたつあります。

  • フォロワーさんが宣伝していた
  • 関数型言語に強い興味があった

「フォロワーさんが宣伝していた」 なんかよくわからないけど楽しそうにカリー=ハワード同型対応について語られたら気になるじゃないですか(安心してください、私もまだカリー=ハワード同型対応が何なのかわかっていません、ごめんなさい)

「関数型言語に強い興味があった」 これも参加する上で大きなモチベーションとなったものです。知識はないが、やる気はありました。参加する前にタイムラインを確認して「再帰、正規表現エンジン、おお、聞いたことあるキーワードあるし参加しよう!」となって参加しました。

全体的な感想

全体のうち3割は内容を理解できました。残りの6割のうち、3割は何がわからないのかわかって、4割はわからないことがあるということがわかりました。
いくつかのセッションにはbeginnerと書かれていたので安心していましたが、騙されました(笑)。けっこう内容がかっ飛ばしてあってなかなか難しかったです!
まあこれは普段Railsを書いている人がRubyKaigiに行ってコンパイラの話をされてちんぷんかんぷんになっている構図と似ている気もしていて、実務でKotlinとかF#を書いている人が聞いていてもわからないものはわからないだろう、だから私がわからなくても当然だという楽観的な感じで聞いていました。

まとめ&具体的な感想

ここからはもう少しどんな感じだったかまとめながら感想を言っていきたいと思います。
聴講したセッションを赤く囲っています。

また個人的にモナ度(ニッチさ・難易度が高ければ高い値を取る)を書きました。
主観なので、実際のあれとは違うかもしれません、ごめんなさい。
モナ度が低いものは私みたいにOOPしか触れてこなかった方でもわかりやすいと思います。

Day1
Day2

[A-107] What I have learned from 15 years of functional programming

個人的なモナ度:🌶🌶

https://fortee.jp/2025fp-matsuri/proposal/cc680424-27f5-4fc1-8fa1-82b5df6cad20

1日目の最後の公演はScott Wlaschinさんの「15年間の関数型プログラミングから学んだこと(和訳)」です。いきなり最後から紹介したのは理由があります。
Scott Wlaschinさんは日本語字幕付きの動画だったのですが、関数型言語のすべてを説明していました。これを見れば、ほとんど理解できるといった感じの内容です。しかも、数学の専門的な用語をあえて避けて、OOPプログラマフレンドリーで平易な用語を使っていました。
まじで見返したいので、動画は後日公開されることを願っています。
関数型言語わかんないけど興味あるし関数型まつりに参加したい方は、まずこの動画を見て履修してからいくとだいぶ良いと思います。

[A-101] 型システムを知りたい人のための型検査器作成入門

個人的なモナ度:🌶

https://fortee.jp/2025fp-matsuri/proposal/5699c262-e04d-4f58-a6f5-34c390f36d0d

RubyKaigiでも登壇される遠藤侑介さんの発表でした。
関数型での耐放射線Quineを求めていました。
このスライドを見れば型検査器作成できるようになると思います。

[A-102] Rust世界の二つのモナド──Rust でも do 式をしてプログラムを直感的に記述する件について

個人的なモナ度:🌶🌶🌶🌶🌶

https://fortee.jp/2025fp-matsuri/proposal/a8cd6d02-37c5-4009-90a4-9495c3189420
スライド: https://konn-san.com/t/two-monads-in-rust.pdf

Haskellにあるdo構文をRustに持ち込む話をしていました。
do構文をRustに持ち込むとどんないいことがあるか、またモナドにはいくつか種類があることも話していました。

https://x.com/mizchi/status/1933757183201849716

内容はけっこうレベルが高かったですが、発表者が「なるほど!」と無理矢理話を進めていて面白かったです。

[B-103] interactのススメ — できるかぎり「関数的」に書きたいあなたに

個人的なモナ度:🌶

https://fortee.jp/2025fp-matsuri/proposal/6109f011-c590-4c89-9add-89ad12cc9631
スライド:https://github.com/nobsun/fpfes2025/blob/main/doc/markdown/interact.pdf

I/O でも関数的に書く方法を話していました。かなり易しく解説されていて良かったです。

[A-103] 関数型言語を採用し、維持し、継続する

個人的なモナ度:🌶

https://fortee.jp/2025fp-matsuri/proposal/76a0de1e-bf79-4c82-b50e-86caedaf1eb9
スライド:https://zenn.dev/siiibo_tech/articles/adopting-fp-languages

関数型言語を採用し、維持し、継続する話をしていました。関数型言語の導入事例はあまり多くないので、けっこう貴重な内容でした。
狂気。と書かれていますが、内容はかなりまともで、なんなら関数型言語に限らずどこでも通用するような話をしていました。

[A-104] 関数プログラミングに見る再帰

個人的なモナ度:🌶

https://fortee.jp/2025fp-matsuri/proposal/034e486c-9a1c-48d7-910a-14aa82237eaa
スライド:https://speakerdeck.com/taisontsukada/guan-shu-xing-maturi-guan-shu-xing-puroguramingunijian-ruzai-gui

プログラミングにおける再帰の基礎を初心者向けにわかりやすく解説していました。
すごく易しい解説でした。
これを見れば、関数型における再帰の考え方(しかも実装も大体どうなっているか)がわかります。

[B-105] 産業機械をElixirで制御する

個人的なモナ度:🌶🏞️

https://fortee.jp/2025fp-matsuri/proposal/6edaa6b5-b591-490c-855f-731a9d318192

制御をElixirで行った水力発電所の例を紹介していました。
すごく面白かったです。
1年分のダムの写真を見ました。

Elixirを採用した理由のときに他の言語を採用しなかった理由がけっこう面白かったです。

https://x.com/skytomo221/status/1933800703711150390

Go かわいそうw

[A-106] continuations: continued and to be continued

個人的なモナ度:🌶🌶🌶🌶🌶

https://fortee.jp/2025fp-matsuri/proposal/ea9fd8fc-4ae3-40c7-8ef5-1a8041e64606
スライド:https://nymphium.github.io/pdf/fp_matsuri_2025.html

覚えましたよ! 継続は残りの計算!
継続について包括的に説明をしていました。
IntermediateAdvancedと書かれている通り、ちゃんとレベルが高めです。

私はなぜか登壇者にTwitterでブロックされていたので、いいねできなかったのがちょっと悲しいです。(心当たりがないので謎です)

[C-201] F#の設計と妥協点 - .NET上で実現する関数型パラダイム

個人的なモナ度:🌶🌶🌶🌶

https://fortee.jp/2025fp-matsuri/proposal/a916dd5a-7342-416a-980d-84f180a8e0a2
スライド:https://speakerdeck.com/matarillo/f-number-design-and-trade-offs-functional-paradigms-on-net

F#の設計と妥協点についてひたすら語っていました。けっこう内容がぎっしりしていて満足感があります。
.NET以外にもJavaScriptとの相互運用性を考えないといけないのは知りませんでした。

[A-202] Haskell でアルゴリズムを抽象化する 〜 関数型言語で競技プログラミング

個人的なモナ度:🌶🌶🌶

https://fortee.jp/2025fp-matsuri/proposal/ad0d29f8-46a2-463b-beeb-39257f9c5306
スライド:https://speakerdeck.com/naoya/guan-shu-xing-yan-yu-dejing-ji-puroguramingu

これを見てHaskellで競プロしたくなりました。
内容もわかりやすく、私でもわりと理解できました。

[A-203] ラムダ計算と抽象機械と非同期ランタイム

個人的なモナ度:🌶🌶🌶

https://fortee.jp/2025fp-matsuri/proposal/3bdbadb9-7d77-4de0-aa37-5a7a38c577c3
スライド:https://docs.google.com/presentation/d/1_GATrCUwgo-ZABGYzuSIapUIzxs9CK7ZuQw1FVk9Ew4/edit

タイトルで怖気づきそうですが、内容がわかりやすく、私でもわりと理解できました。
アニメーションが優秀で理解を促進しました。
あと地味に演算子にふりがなを振ってあったり、言語を小さく書いてあったり、至る所に配慮が見られ、すごく親切なスライドでした。

内容は説明に書いてあるとおり、ラムダ計算の話から出発して、ラムダ計算のシンプルな「インタプリタ」であるC(E)Kマシンの仕組みと動作について詳しく解説していました。

[B-204] Leanで正規表現エンジンをつくる。そして正しさを証明する

個人的なモナ度:🌶🌶🌶🌶

https://fortee.jp/2025fp-matsuri/proposal/af94193a-4acb-4079-82a9-36bacfae3a20
スライド:https://github.com/pandaman64/kansuugatamatsuri-2025/blob/main/main.pdf

「Leanで正規表現エンジンをつくる。そして正しさを証明する」というタイトルで正規表現エンジンに惹かれて見ましたが、実態としては「Leanで」と「そして正しさを証明する」がかなり強めに出ていました。
定理証明支援系はけっこう大変だということも知りました。

https://x.com/SnO2WMaN/status/1856490158373101941

そして私は証明がどういう意味であるかわかっていないということがわかりました。
私は今、「定理証明支援系で本当に証明できるの? 証明って形式的にできるものなの? 本当に?」となっています。
わかっていないことがわかったので大きな一歩です。
Leanを実際に触ってみて理解しようと思います。

[A-205] 数理論理学からの『型システム入門』入門?

個人的なモナ度:🌶🌶🌶🌶

https://fortee.jp/2025fp-matsuri/proposal/a6badfbb-ca70-474d-9abd-f285f24d9380
スライド:https://slides.buddha0818.workers.dev/fp-matsuri2025

論理学がわかっているならこっちから入るといいよ~という発表でした。が、私はこれを聞いて、論理学がわかっていないことがわかりました。そんな……
私の場合、「∀」とか「∃」とかぐらいはわかるのですが、自然演繹とか証明図は知りませんでした。個人的にはそこのステップが抜けててけっこう難しかったです。多分、私以外も情報工学出身はそんな感じの理解だと思っているのですが、どうなんでしょうか?
論理学ももう少し勉強しないといけないな~と思いました。

[A-206] Gleamという選択肢

個人的なモナ度:🌶🌶

https://fortee.jp/2025fp-matsuri/proposal/e9df1f36-cf2f-4a85-aa36-4e07ae742a69
スライド:https://speakerdeck.com/comamoca/gleamtoiuxuan-ze-zhi-jia

Gleamに対する愛の気持ちを発表していました(ちゃんと技術的な中身もあります)。
GleamはGoのようにシンプルです。
C/C++を参考にしてできたGo、FP言語を参考にしてできたGleamといった感じだそうです。
Gleamの開発者は仕事をやめてフルタイムで開発しているらしく(すごすぎる……)、資金繰りにけっこう困っているようなので、寄付をお願いしていました。

[A-207] Scala の関数型ライブラリを活用した型安全な業務アプリケーション開発

個人的なモナ度:🌶🌶🌶

https://fortee.jp/2025fp-matsuri/proposal/02f89c3a-672e-4294-ae31-69e02e049005
スライド:https://fortee.jp/2025fp-matsuri/proposal/02f89c3a-672e-4294-ae31-69e02e049005

[B-208] Lispは関数型言語(ではない) by うさみけんた

個人的なモナ度:🌶🌶🌶

https://fortee.jp/2025fp-matsuri/proposal/92b697d1-206c-426a-90c9-9ff3486cce6f
スライド:https://tadsan.fanbox.cc/posts/10062198

10分で100スライド超えで、爆速で発表しててすごかったです。
Lispは雑草。LispのパラダイムはLispかも?

[B-209] Kotlinで学ぶ代数的データ型 by Kanon

個人的なモナ度:🌶🌶

https://fortee.jp/2025fp-matsuri/proposal/e436393d-c322-477d-b8cb-0e6ac8ce8cc6
スライド:https://speakerdeck.com/ysknsid25/kotlindexue-bu-dai-shu-de-detaxing

「[A-107] What I have learned from 15 years of functional programming」をもう少し具体的にKotlinでやってみた感じです。これもけっこうわかりやすくおすすめです。

ブース

最推し書籍が印象的でした。

https://x.com/skytomo221/status/1933751647886586022

自分の推し書籍に一つシールがあってかなり嬉しかったです。

https://x.com/skytomo221/status/1934136344420438093

シャツを2着もらいました! ありがとうございます
個人的には少し暑かったので、シャツよりもタオルのほうが嬉しいかもと思いました。これは本当に個人的な感想なので、気にしないでください。

アクリルスタンドは運に負けてもらえませんでした~、悔しい~~

最後に

初心者には難しい内容も多くありましたが、発表者や聴講者が楽しいそうに聞いているのを見て、私も理解できるようになりたい気持ちが強くなりました。
来年も行きたいです!
そして、次はもっと理解してから行けるように頑張ります!

ありがとうございました!

Discussion

れもんれもん

カリーハワード同型対応は、

  • 数学から出てきた論理学
    • 普段の数学で語られている∧とか⇒とかを使う証明の論理の流れってどういうものなの?その証明って合ってるの?というのを数学を使ってメタ的に定義する学問
  • コンピュータ科学から出てきた型理論
    • プログラムの流れってどういうものなの?そのプログラムって合ってるの?について議論する学問

この違う分野から出た2つの学問って実はぶっちゃけ何ら変わらないことについて議論してましたというものです。
証明が合ってるか確認するときにはその式の流れが定理に合致するかを見に行くし、プログラムが合ってるか確認するときにはその式の流れが演算子や関数の型に合致するかを見に行くといった次第です。

でも普通の言語は Int -> String (Int型の値があれば必ずString型の値を導ける)みたいなしょうもないことしか言えないので、もっと面白いプログラムの性質を導けるように型システムをムキムキにしたのがleanとかの証明支援系って言われるやつです。