Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
LT Slide 2025-04-22
Search
Shigeki Shoji
April 22, 2025
Technology
0
120
LT Slide 2025-04-22
#kanjava
Shigeki Shoji
April 22, 2025
Tweet
Share
More Decks by Shigeki Shoji
See All by Shigeki Shoji
Instructional Designer
takesection
0
120
Zero to Hero
takesection
0
190
Fargateを使った研修の話
takesection
0
240
20240730_kanjava.pdf
takesection
0
140
JavaのJCP会員になろう
takesection
0
97
JAWS-UG Okayama 2024 LT
takesection
0
92
IaCツールのいろいろ
takesection
0
390
依存ライブラリはどこに?
takesection
0
280
GitHub Actions Runner Controller
takesection
0
370
Other Decks in Technology
See All in Technology
Node−RED で Ollama を使ったローカルLLM(node-red-contrib-ollamaを利用) / ビジュアルプログラミングIoTLT vol.20
you
PRO
0
130
CSS polyfill とその未来
ken7253
0
130
カンファレンスのつくりかた / The Conference Code: What Makes It All Work
tomzoh
7
860
Cloud Run を解剖して コンテナ監視を考える / Breaking Down Cloud Run to Rethink Container Monitoring
aoto
PRO
0
110
What's Next in OpenShift Q2 CY2025
redhatlivestreaming
1
370
スプリントゴールで価値を駆動しよう
takufujii
3
1.6k
面接を通過するためにやってて良かったこと3選
sansantech
PRO
0
110
Scale Security Programs with Scorecarding
ramimac
0
370
ITエンジニアを取り巻く環境とキャリアパス / A career path for Japanese IT engineers
takatama
3
1.5k
RDRA3.0を知ろう
kanzaki
2
400
Streamline Cloud-Native App Development Using CDEs
saeedzf
0
640
TypeScript と歩む OpenAPI の discriminator / OpenAPI discriminator with TypeScript
kaminashi
1
120
Featured
See All Featured
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Scaling GitHub
holman
459
140k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
123
52k
Site-Speed That Sticks
csswizardry
6
580
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
740
The Straight Up "How To Draw Better" Workshop
denniskardys
233
140k
Reflections from 52 weeks, 52 projects
jeffersonlam
349
20k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
830
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
The Pragmatic Product Professional
lauravandoore
34
6.7k
Gamification - CAS2011
davidbonilla
81
5.3k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
42
2.3k
Transcript
再帰関数 2025年04月22日 Shigeki Shoji
庄司重樹 Instructional Designer 受賞歴 2024 Japan AWS All Certifications Engineers
2023 Japan AWS Top Engineers
このコードを見て不安になりますか? 3 def hoge: Unit = { val line =
StdIn.readLine("入力(終了したいときは exit と入力): "); if (line != "exit") { hoge; } }
スタックオーバーフローになるのでは? • コードがコンピュータの中でどのように処理されるかを認識し て、コンピュータに寄り添ったコードを書いてませんか? • コードがどういう問題を起こすかを想像して書くよりも、もっと直感 的に人間中心にしたい。もしそれが深刻な問題を起こすのであれば、 コンパイラなり処理系が警告するか、可能な限り自動的に問題が起こ らない動作になるようにしてほしい 4
Scalaなら末尾再帰が使用可能 5 import scala.annotation._; @tailrec def hoge: Unit = {
val line = StdIn.readLine("入力(終了したいときは exit と入力): "); if (line != "exit") { hoge; } } コンパイル後のコードはループに最適化され、繰り返し回数 が原因のスタックオーバーフローは発生しない
6 ありがとうございました