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
LT Slide 2025-04-22
Search
Shigeki Shoji
April 22, 2025
Technology
270
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
LT Slide 2025-04-22
#kanjava
Shigeki Shoji
April 22, 2025
More Decks by Shigeki Shoji
See All by Shigeki Shoji
OpenID Connectによるサービス間連携
takesection
1
140
OpenID Connectによるサービス間連携
takesection
0
320
アーティファクト管理でサプライチェーン攻撃を回避!!
takesection
0
170
2025-12-19-LT
takesection
0
180
2025-12-11 nakanoshima.dev LT
takesection
0
200
アジャイルテストで高品質のスプリントレビューを
takesection
0
270
Introduction to kanjava
takesection
0
170
Instructional Designer
takesection
0
240
Zero to Hero
takesection
0
300
Other Decks in Technology
See All in Technology
AIコーディングはじめました
miso
0
170
AI時代に求められる優秀なTechLeadの振る舞い
pospome
11
16k
ライフワーク「猫でもわかるDirectConnect」
kentapapa
0
310
公共分野での生成AI活用
toru_kubota
1
320
Ebitengine製iOSアプリ公開ボタンを押す会
eiei114
0
120
新米を「売り越さない」、Aurora DSQLで作る在庫ゼロ死守の限定ドロップEC
yama3133
0
200
会社説明資料_最新版
demaecan
0
32k
Kiro Crew の Bot (続く役目を任せる窓口) | 目指せ Kiro マスター 12
inariku
PRO
2
350
TSKaigi Sendai 2026 - tsgo時代のTypeScript Playgroundはどう動くか
teamlab
PRO
0
110
Reticulum, le réseau cypherpunk dont vous avez besoin !
rlifchitz
0
120
HQ駆動開発で最高のAI-Contextを作ろう
sansantech
PRO
1
120
レガシーコードに対する loop engineering的なAI開発プロセス導入について
kubell_hr
0
320
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
433
67k
Technical Leadership for Architectural Decision Making
baasie
3
640
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
470
Mobile First: as difficult as doing things right
swwweet
225
10k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1.1k
Between Models and Reality
mayunak
4
570
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
630
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
280
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
680
AI Search: Where Are We & What Can We Do About It?
aleyda
0
8.2k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
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 ありがとうございました