Una pregunta similar a esta se hizo hace un par de años , pero esta es aún más complicada.
El desafío es simple. Escribir un programa (en el idioma de su elección) que ejecuta repetidamente el código sin necesidad de utilizar ninguna estructura de repetición, como while
, for
, do while
, foreach
o goto
( Así que por todo lo que nitpickers, no se puede utilizar un bucle ). Sin embargo, la recursión no está permitida, en la función que se llama a sí misma sentido (véase la definición a continuación) . Eso haría este desafío demasiado fácil.
No hay restricciones sobre lo que debe ejecutarse en el ciclo, pero publique una explicación con su respuesta para que otros puedan entender exactamente lo que se está implementando.
Para aquellos que pueden estar colgados en las definiciones, la definición de un bucle para esta pregunta es:
A programming language statement which allows code to be repeatedly executed.
Y la definición de recursión para esta pregunta será su definición de función recursiva estándar:
A function that calls itself.
El ganador será la respuesta que tenga más votos positivos el 16 de julio a las 10 a.m., hora del este. ¡Buena suerte!
ACTUALIZAR:
Para calmar la confusión que aún se expresa, esto puede ayudar:
Reglas como se indicó anteriormente:
- No uses bucles o goto
- Las funciones no pueden llamarse a sí mismas
- Haz lo que quieras en el 'bucle'
Si desea implementar algo y las reglas no lo rechazan explícitamente, continúe y hágalo. Muchas respuestas ya han torcido las reglas.
rep(f){f();f();}
esta es una declaración (una declaración de función es una declaración en algunos idiomas) que permite ejecutar código repetidamente. ¿Está prohibido? Pide código para implementar un bucle. Si ese código es sintácticamente una declaración, simplemente lo ha rechazado. Otro ejemplo: f(b) { b(); g(b); }; g(b) { f(b); }
. Yo diría que f
es una función recursiva (al ser recursiva mutuamente con g
). ¿Está prohibido?
function A
llamadasfunction B
yfunction B
llamadasfunction A
mientras 1 de las funciones realiza algo. Como la función no se llama a sí misma, debería ser válida según los criterios ^. ^