resultado = (x for x in [5..2]) Assinale a opção que apresenta o resultado da execução do código CoofeeScript precedente.
- A)5,5
Errada, porque 5,5 não corresponde ao intervalo [5..2] nem ao resultado de uma comprehension.
- B)5,4,3,2
Certa, pois [5..2] gera a sequência descendente 5, 4, 3, 2, e o laço devolve esses elementos.
- C)2,2,2,2,2
Errada, porque o código não repete o 2 nem cria cinco ocorrências do mesmo valor.
- D)5,3,1
Errada, já que a sequência não pula de 2 em 2; o intervalo é contínuo e inclui 4 e 2.
- E)4,3
Errada, porque [5..2] inclui 5 e vai até 2, não produzindo apenas 4 e 3.
Gabarito: B
Em CoffeeScript, a sintaxe de intervalo [5..2] cria uma lista com contagem regressiva, incluindo as extremidades. Ou seja, em vez de pensar em “de 5 até 2” como algo vazio, voce deve ler como uma faixa descendente: 5, 4, 3, 2. Isso acontece porque o CoffeeScript aceita intervalos crescentes e decrescentes de forma natural. Na expressão resultado = (x for x in [5..2]), temos uma comprehension: o laço percorre cada elemento do intervalo e devolve esses valores. Como o intervalo já vale 5, 4, 3, 2, a variável resultado recebe exatamente essa sequência. Então o gabarito B está correto porque o código não pula números nem repete valores: ele apenas percorre o intervalo completo, com os dois limites incluídos. Em provas, a banca costuma explorar justamente esse detalhe de sintaxe para confundir quem pensa em JavaScript “puro” e esquece a leitura específica do CoffeeScript.