Articles of recursión

¿Cómo iterar a través de los attributes de un JsonObject recursivamente?

Estoy parsing cadenas en objects JSON, y necesito poder iterar recursivamente a través de los attributes de los objects. Así que estoy tratando de crear una function que itere a través de los attributes del object, y si un atributo no es primitivo, llame de nuevo a la function (recursion) con el atributo mismo. En […]

Cómo implementar dropWhile recursivamente con foldRight en Kotlin

He estado implementando funciones de order superior recursivamente con .foldRight() como any , all y takeWhile como práctica, pero dropWhile ha sido difícil de alcanzar. _Collections.kt tiene la forma imperativa pero no pude convertirlo a una estructura recursiva. Como reference, esto es takeWhile fun takeWhile(list:List<Int>, func:(Int) -> Boolean):List<Int> = list.foldRight(emptyList(), { next:Int, acc:List<Int> -> if […]

Kotlin – Cómo recursivamente llamar a una function lambda

Estoy tratando de volver a implementar la function de linrec desde aquí en Kotlin. Esto es lo que actualmente se ve en Kotlin: fun <A, B> linrec(indivisible: (List<A>) -> Boolean, value: (List<A>) -> B, divide: (List<A>) -> List<List<A>>, combine: (A, B) -> B ) : (List<A>) -> B { val myfunc: (List<A>) -> B = […]

Kotlin: recursión de queue para funciones mutuamente recursivas

Supongamos que escribo un código como este: tailrec fun odd(n: Int): Boolean = if (n == 0) false else even(n – 1) tailrec fun even(n: Int): Boolean = if (n == 0) true else odd(n – 1) fun main(args:Array<String>) { // 🙁 java.lang.StackOverflowError System.out.println(even(99999)) } ¿Cómo hago para que Kotlin optimice estas funciones mutuamente recursivas, […]