Tip:
Highlight text to annotate it
X
Resolvendo isso juntos -- vladimir retorna imediatamente,
portanto pára em apenas 1 passo.
Então, sim, isso não entra em loop infinito.
Para saber o valor de nabokov, nós chamamos nabokov,
o que resulta em chamar nabokov, que chama nabokov, que chama nabokov.
Este então entra em loop infinito.
Este não é dos meus símbolos de infinito mais simétricos.
Nunca realmente obtemos um valor daqui --
chamamos a nós mesmos de novo e de novo.
Esta função nunca pára.
Você pode estar pensando: "Oh, eventualmente vamos exceder o espaço da pilha",
ou alguma coisa assim, mas lembre-se: aqui eu
quero que você pense de modo abstrato.
Estamos assumindo esta mítica função halts.
E esta, pale? x = 0, while True x = x + 1.
Já vimos isto antes.
Este loop não pára, não termina.
E fire?
Começamos com x = 0 e y = 1000,
e, enquanto x < y, somamos 2 a x e somamos 1 a y.
Depois de algum tempo, isso será 2 e 1001, e depois será 4 e 1002,
depois 6 e 1003.
E embora possa não parecer ainda, eventualmente x irá passar y,
Porque x cresce duas vezes mais rápido.
Por exemplo, depois de 1000 passos, x será 2000 e y será também 2000,
ponto no qual esse loop termina.
Portanto, fire de fato pára.
Pale Fire foi uma novela de Nabokov, de 1962.
Ele é talvez mais famoso por Lolita.
Ele foi um autor russo que escreveu vários livros em inglês.
Ok. Não vimos nada ruim aqui -- isso nos parece ok.
Pudemos determinar isso apenas verificando se cada comando pára ou não.
Porque eu estou prevendo um desastre? Não tivemos nenhum problema aqui.