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
190
LT Slide 2025-04-22
#kanjava
Shigeki Shoji
April 22, 2025
Tweet
Share
More Decks by Shigeki Shoji
See All by Shigeki Shoji
2025-12-19-LT
takesection
0
91
2025-12-11 nakanoshima.dev LT
takesection
0
94
アジャイルテストで高品質のスプリントレビューを
takesection
0
190
Introduction to kanjava
takesection
0
110
Instructional Designer
takesection
0
160
Zero to Hero
takesection
0
240
Fargateを使った研修の話
takesection
0
340
20240730_kanjava.pdf
takesection
0
170
JavaのJCP会員になろう
takesection
0
120
Other Decks in Technology
See All in Technology
多様な最適化サービス開発をスケールさせる共通基盤とチーム構成
algoartis
0
110
みんなでAI上手ピーポーになろう! / Let’s All Get AI-Savvy!
kaminashi
0
170
Eight Engineering Unit 紹介資料
sansan33
PRO
0
6.3k
習慣とAIと環境 — 技術探求を続ける3つの鍵
azukiazusa1
2
690
Agentic Coding 実践ワークショップ
watany
10
8.6k
CQRS/ESになぜアクターモデルが必要なのか
j5ik2o
0
1.3k
それぞれのペースでやっていく Bet AI / Bet AI at Your Own Pace
yuyatakeyama
1
340
Master Dataグループ紹介資料
sansan33
PRO
1
4.2k
形式手法特論:コンパイラの「正しさ」は証明できるか? #burikaigi / BuriKaigi 2026
ytaka23
17
6.4k
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
12k
BiDiってなんだ?
tomorrowkey
1
200
OCI技術資料 : OS管理ハブ 概要
ocise
2
4.2k
Featured
See All Featured
Paper Plane
katiecoart
PRO
0
45k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
30 Presentation Tips
portentint
PRO
1
190
Claude Code のすすめ
schroneko
67
210k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.5k
Done Done
chrislema
186
16k
ラッコキーワード サービス紹介資料
rakko
1
2.1M
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
130
Exploring anti-patterns in Rails
aemeredith
2
230
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.7k
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 ありがとうございました