Upgrade to Pro — share decks privately, control downloads, hide ads and more …

LT Slide 2025-04-22

LT Slide 2025-04-22

#kanjava

Shigeki Shoji

April 22, 2025
Tweet

More Decks by Shigeki Shoji

Other Decks in Technology

Transcript

  1. このコードを見て不安になりますか? 3 def hoge: Unit = { val line =

    StdIn.readLine("入力(終了したいときは exit と入力): "); if (line != "exit") { hoge; } }
  2. Scalaなら末尾再帰が使用可能 5 import scala.annotation._; @tailrec def hoge: Unit = {

    val line = StdIn.readLine("入力(終了したいときは exit と入力): "); if (line != "exit") { hoge; } } コンパイル後のコードはループに最適化され、繰り返し回数 が原因のスタックオーバーフローは発生しない