Articles of recursión

Recursividad vs bucles

Estoy enfrentando un problema donde tanto la recursividad como el uso de un bucle parecen soluciones naturales. ¿Existe una convención o “método preferido” para casos como este? (Obviamente, no es tan simple como a continuación) Recursión Item Search(string desired, Scope scope) { foreach(Item item in scope.items) if(item.name == desired) return item; return scope.Parent ? Search(desired, […]

¿Qué funciones recursivas no se pueden reescribir utilizando bucles?

Hasta donde yo sé, la mayoría de las funciones recursivas se pueden reescribir utilizando bucles. Algunos quizás sean más difíciles que otros, pero la mayoría se pueden reescribir. ¿Bajo qué condiciones se vuelve imposible reescribir una función recursiva utilizando un bucle (si existen tales condiciones)?

Cómo renderizar un árbol en Twig

Me gustaría renderizar un árbol con una profundidad indeterminada (hijos de hijos de niños, etc.). Necesito recorrer el conjunto recursivamente; ¿Cómo puedo hacer esto en Twig?

¿Por qué debería la recursión ser preferida sobre la iteración?

La iteración es más eficiente que la recursión, ¿verdad? Entonces, ¿por qué algunas personas opinan que la recursión es mejor (más elegante, según sus palabras) que la iteración? Realmente no veo por qué algunos lenguajes como Haskell no permiten la iteración y fomentan la recursión. ¿No es absurdo alentar algo que tiene un mal rendimiento […]

Listar archivos recursivamente en Linux CLI con ruta relativa al directorio actual

Esto es similar a esta pregunta , pero quiero incluir la ruta relativa al directorio actual en Unix. Si hago lo siguiente: ls -LR | grep .txt No incluye los caminos completos. Por ejemplo, tengo la siguiente estructura de directorio: test1/file.txt test2/file1.txt test2/file2.txt El código de arriba devolverá: file.txt file1.txt file2.txt ¿Cómo puedo hacer que […]

salida inesperada en C (recursión)

int main(void) { static int=5; if(–i) { main(); printf(“%d”,i); } } la salida del progtwig anterior es — 0000 Pero creo que debería ser — 1234 No sé por qué? Por favor, ayúdenme.

Recursión de Javascript de Eloquent Javascript

Así que esto es del Javascript Eloquent . Estoy tratando de descubrir cómo este código es realmente atravesado. Así que estamos tratando de encontrar una forma de alcanzar el número objective agregando 5 o multiplicando por 3, y comenzamos desde el número 1. Entonces, esencialmente, estamos tratando de encontrar una secuencia de tales adiciones y […]

Obtuve “aplicación de esquema, no un procedimiento” en la última llamada recursiva de una función

así que aquí está el código: (define (time-prime-test n) (newline) (display n) (start-prime-test n (runtime))) (define (start-prime-test n start-time) (if (prime? n) (report-prime (- (runtime) start-time)))) (define (report-prime elapsed-time) (display ” *** “) (display elapsed-time)) (define (search-for-primes nm) (if (< nm) ((time-prime-test n) (search-for-primes (+ n 1) m)) (display " calculating stopped. "))) (search-for-primes 100000 […]

Lista enlazada recursiva inversa

Estaba mirando el siguiente código de la biblioteca de Stanford: void recursiveReverse(struct node** head_ref) { struct node* first; struct node* rest; /* empty list */ if (*head_ref == NULL) return; /* suppose first = {1, 2, 3}, rest = {2, 3} */ first = *head_ref; rest = first->next; /* List has only one node */ […]

¿Por qué las funciones en Ocaml / F # no son recursivas por defecto?

¿Por qué las funciones en F # y Ocaml (y posiblemente en otros idiomas) no son recursivas por defecto? En otras palabras, ¿por qué los diseñadores de idiomas decidieron que era una buena idea hacer explícitamente que rec en una statement como: let rec foo … = … y no le da la función de […]