Uma pergunta semelhante a essa foi feita há alguns anos , mas essa é ainda mais complicada.
O desafio é simples. Escreva um programa (no idioma de sua escolha) que repetidamente executa o código sem o uso de estruturas de repetição, como while
, for
, do while
, foreach
ou goto
( Então para todos os nitpickers, você não pode usar um loop ). No entanto, a recursão não é permitida, na função que se chama de sentido (veja a definição abaixo) . Isso tornaria esse desafio fácil demais.
Não há restrições sobre o que precisa ser executado no loop, mas poste uma explicação com sua resposta para que outras pessoas possam entender exatamente o que está sendo implementado.
Para aqueles que podem ficar de fora das definições, a definição de um loop para esta pergunta é:
A programming language statement which allows code to be repeatedly executed.
E a definição de recursão para esta pergunta será sua definição de função recursiva padrão:
A function that calls itself.
O vencedor será a resposta que mais votou no dia 16 de julho às 10h, horário do leste. Boa sorte!
ATUALIZAR:
Para acalmar a confusão que ainda está sendo expressa, isso pode ajudar:
Regras conforme indicado acima:
- Não use loops ou vá para
- Funções não podem se chamar
- Faça o que quiser no 'loop'
Se você deseja implementar algo e as regras não o proíbem explicitamente, vá em frente e faça-o. Muitas respostas já dobraram as regras.
rep(f){f();f();}
- esta é uma declaração (uma declaração de função é uma declaração em alguns idiomas) que permite executar código repetidamente. É proibido? Você pede código para implementar um loop. Se esse código é sintaticamente uma instrução, você simplesmente não o permitiu. Outro exemplo: f(b) { b(); g(b); }; g(b) { f(b); }
. Eu diria que f
é uma função recursiva (sendo mutuamente recursiva com g
). É proibido?
function A
chamadasfunction B
efunction B
chamadasfunction A
enquanto 1 das funções executa alguma coisa. Desde que a função não chamar a si mesma que deveria ser válido com base nos critérios ^ ^.