Задачи на функции в Kotlin. Часть 9
Сделайте tailrec fun factorial(n: Int): Long.
Сделайте tailrec fun sumList(list: List<Int>): Int.
Сделайте tailrec fun gcd(a: Int, b: Int): Int.
Объясните, почему tailrec нужен для рекурсии.
Сделайте tailrec fun reverseString(s: String): String.
Попробуйте tailrec для Fibonacci.
Сделайте tailrec fun countDown(n: Int).
Сравните обычную и tailrec рекурсию.
Сделайте tailrec fun binarySearch.
Сделайте tailrec fun flatten(list: List<Any>): List<Int>.