[SP-pm] grep e map

Alexei Znamensky russoz at gmail.com
Sun May 29 18:25:40 PDT 2011


Flávio,

2011/5/29 "Flávio R. Lopes" <flavio.lopes em links.inf.br>
[...]

> [1] https://github.com/russoz/perltests/blob/master/test-grep.pl
>
> É aqui que não entendo porque o Perl, digamos, "não segue com a lógica do
> bloco", ou seja, ele não faz o exemplo (abaixo) do MAP.
> Aqui ele somente coloca no meu array @result somente o "itens" do array de
> entrada que correspondem A PRIMEIRA CONDIÇÃO do bloco, ou seja "X > 4", que
> no caso correspondem: result = 5 6 7 8 9.
> É neste ponto que não consigo entender porque ele não segue analisando TODA
> estrutura do bloco: { $_ > 4 ? 2 * $_ : 0 * $_ }, ou seja, ele só me retorna
> os valores que deixam a expressão verdadeira, ou seja, somente os itens que
> são maiores que 4 ($_ > 4).
> Pelo que estou vendo, quando se usa o Grep, ele me traz os itens do array
> de entrada que "deixa verdadeira" as condições do Bloco? Seria mais ou menos
> isso?
>

Sim, exatamente isso. E porque, no Perl, o valor 0 (zero) é considerado
'falso' e valores != 0 (não-zero) são considerados 'verdadeiro'. Assim, o
grep funciona da seguinte forma: retorne todos os elementos do array de
entrada *para os quais a execução do { BLOCO } retorne VERDADEIRO*.

Os exemplos do Ulisses, também neste thread, foram melhores até que os meus.
Dê uma olhada.

[]s,
-- 
Alexei "RUSSOZ" Znamensky
[russoz_gmail_com] [russoz.wordpress.com] [www.flickr.com/photos/alexeiz] [
https://github.com/russoz]
Only love / Can bring the rain / That makes you yearn to the sky
-------------- Pr�xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20110529/045484d7/attachment-0001.html>


More information about the SaoPaulo-pm mailing list