[Rio-pm] (spoiler) Re: desafio Perl! (parte final)

Breno G. de Oliveira breno em clavis.com.br
Segunda Julho 17 20:56:44 PDT 2006


E aí? Pensou? Desistiu? Tá de saco cheio? Quer saber a resposta?

Aí vai!

Lembre-se de que, em Perl, as coisas se comportam de acordo com o
CONTEXTO em que elas são utilizadas.

@y = ( 50 .. 60 );
$x = ( 4, 5, @y );

Aqui, $x é escalar, mas está recebendo uma lista. O que acontece?

Suponha antes um caso mais "normal", digamos:

$x = (4, 3, 2, 1);

Como estamos no contexto ESCALAR, $x recebe o último valor passado. No
caso, $x = 1.

Ora, mas então nesse caso, conforme vc provavelmente supôs na primeira
vez que olhou para o problema, teríamos algo como:

$x = (4, 5, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60);

e, nesse caso, $x deveria ser 60, certo? Bom, nesse caso sim. Mas não
foi isso o que foi escrito. Vejamos de novo:

$x = (4, 5, @y);

entao o último valor da lista, o valor que será de fato atribuído a $x,
é @y. Ou melhor, é o valor retornado por @y no contexto escalar.

Agora ficou fácil, hein?

Afinal, sabemos que, em contexto escalar, um array retorna o número de
elementos contidos dentro dele! O que tem em @y, então?

@y = (50..60);  # 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60

11 elementos. Logo,

$x = 11;







Breno G. de Oliveira wrote:
> Ok, vamos relembrar o problema...
> 
> @y = ( 50 .. 60 );
> $x = ( 4, 5, @y );
> 
> 
> e aí? Qual o valor de $x ???
> 
> 
> Aí vai OUTRA dica...
> 
> respondeu 13? Errou de novo!!!
> 
> 
> sem olhar o código hein pessoal? Será que alguém mata?
> 
> 
> no próximo email eu mando a resposta. Quem quiser pensar mais não leia o
> próximo email!
> 
> []s
> 
> breno
> 
> 
> 
> Breno G. de Oliveira wrote:
> 
>>Essa eu ia mostrar no último encontro social mas esqueci...
>>
>>veja o seguinte código:
>>
>>@y = ( 50 .. 60 );
>>$x = ( 4, 5, @y );
>>
>>
>>Responda rápido! Qual o valor de $x ????
>>
>>Vou dar uma dica:
>>
>>se respondeu 60, errou!
>>
>>
>>continue pensando... não vale testar o código!
>>_______________________________________________
>>Rio-pm mailing list
>>Rio-pm em pm.org
>>http://mail.pm.org/mailman/listinfo/rio-pm
>>
>>
> 
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
> 
> 


Mais detalhes sobre a lista de discussão Rio-pm