Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
関数型プログラミングに出会って考え方の幅が広がった話
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Javadog
October 14, 2026
Programming
14
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
関数型プログラミングに出会って考え方の幅が広がった話
Javadog
October 14, 2026
More Decks by Javadog
See All by Javadog
個人開発でAWSを使いたい
javadog
7
2.2k
Other Decks in Programming
See All in Programming
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
430
AI主導のプログラミング学習アプリを作ってみた
econanringo
0
180
Simple Storage Service(S3) is not simple
iwatsukayura
0
290
golang-bob.pdf
iwatsukayura
0
130
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
190
Web Framework Benchmark Battle 2026, Any%
a_matsuda
2
2.2k
JAWS-UG 東京支部が始める、JAWS-UG支部コラボ / JAWS-UG lunchtime LT Collaboration
y0hgi
0
280
Vue Fes Japan の “作る側”に関わってみて
naokihaba
0
160
[ハンズオン]AIへの指示だけで「五目並べ」を作ってみよう
satoshi256kbyte
1
380
Next.js: The final boss of Web Performance
guaca
0
260
The Rails Doctrine Decade
koic
2
590
[JA] Domain Modeling with Vanilla Rails: 「操作」から再考するRailsの設計論
yasaichi
0
250
Featured
See All Featured
Navigating Team Friction
lara
192
16k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
4
4.4k
The Limits of Empathy - UXLibs8
cassininazir
2
720
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.9k
The Language of Interfaces
destraynor
162
27k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
940
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
How STYLIGHT went responsive
nonsquared
100
6.3k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
43k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Transcript
Server-Side Kotlin Meetup 関数型プログラミングに出会って 考え方の幅 広 った話 株式会社コドモン プロダクト開発部 藤村
泰雅 2026年10月14日
自己紹介 藤村 泰雅 ふじむら たいが 経歴 写真販売や連絡帳製本など、思い出の領域を扱うチームに新卒配属。 XPとDDDに軸足を置いて、ユーザーに届 価値を最大化するために なんでもやります!
2023年4月:コドモンに新卒入社 2
はじめに 今日のテーマ:関数型プログラミングに出会い、考えの幅 「業務ルールの表現に型を使った工夫を入れた方 とふんわり思っていたことの正体 『FPをそこまで深 浅 た も、という話をします 、めちゃめちゃ初心者です 知らない人』にとって持ち帰るもの
※関数型そのものというより、関数型の周辺の考え方 った 、より堅牢な作りになる」 、関数型に出会って見えて ※私自身は関数型プログラミングを学び始めて日 どう広 あれば幸いです ら学んだという方 正確 もしれません 3
関数型プログラミングと出会って考えの幅 広 ったこと 1. 型を『値の集合』として捉える 2. 代数的データ型の考え方 3. 関数を『状態遷移の許可ルール』として捉える 4
1. 型を『値の集合』として捉える とり得る値の組み合わせ 何通りある 、という捉え方 例えば... Boolean はtrue or falseの二通りの値を取り得る型
業務上の分類に対して、⾃分たちの作ったモデルが 広いか/狭いか みたいな視点が新しく⾝につきました 5
2. 代数的データ型の考え方 直積型 直和型 AとBの両方を持つ。取り得る値の数は |A| × |B| A 全通りの組み合わせを表現する
場合分 掛 算と足し算を使い分 て、型 Bのどちら 。取り得る値の数は |A| + |B| して、各場合に必要な要素だ 表す集合の広さを調節で 持たせる る 6
Before: nullableな配送情報を持つ注文 配送⽅法 配送先 業務上 悩み事 あり あり 配送が必要な注⽂ 型
なし なし 配送が不要な注⽂ あり なし ありえない 業務上ありえる組み合わせは2通り なし あり ありえない ありえない組み合わせを考慮せず済むようにしたい 表現している集合の範囲 広す る 7
After: 配送のあり/なしで型を分 る 直和型の表現に組み替える 配送あり or 配送なしの2通りに絞った表現 型 表す集合 業務上の分類と一致し、
業務上ありえない組み合わせ 作れない形になる 8
ここまでで 『業務上ありえない組み合わせ』を見つ た時 型を集合として捉えることで課題を言葉にで 代数的データ型の考え方を使って改善で るようになり るようになった 9
3. 関数を『状態遷移の許可ルール』として捉える 関数を定義する = その遷移を許可する 「業務上の分類と一致する集合」を関数で繋 入出力の型を絞れるので状態遷移の許可ルールとして機能する 10
まとめ 「型で表すと何 良いの 」 言葉にで るようになり、考え方の幅 広 った 1 型を「値の集合」として捉える
─ 型の広さ 2 代数的データ型の考え方 ─ 直積と直和を使い分 3 関数を『状態遷移の許可ルール』として捉える ─ 1, 2と併せて型で表すと何 適切 どう 、という視点を身につ た 、型の表現を業務上の分類に合わせる方法を身につ 嬉しいの た 理解で た 存在して良い値の組み合わせを絞り込むことでデータの状態を型に表現し、 どの状態 らどの状態への遷移を許可する を制御することで、堅牢なビジネスロジック 表現で る 11