-
1.7 꼬리 재귀scala/functional programming 2024. 4. 4. 20:53
tail recursion: If a function calls itself as its last action, the function's stack frame can be reused.
Exercise
factorial() 을 꼬리재귀 버전으로 구현하라.
import scala.annotation.tailrec def factorial(n: Long): Long = { @tailrec def fact(n: Long, acc: Long): Long = if (n == 0) acc else fact(n - 1, n * acc) fact(n, 1) } @main def Main(): Unit = { val r = factorial(10) println(r) }
'scala > functional programming' 카테고리의 다른 글
1.6 블록과 어휘 범위 (0) 2024.04.04 1.5 예제: 뉴턴의 방법을 사용한 제곱근 (0) 2024.04.04 1.4 조건과 값 정의 (0) 2024.04.04 1.3 평가 전략 및 종료 (0) 2024.04.04 1.2 프로그래밍의 요소 (0) 2024.04.04