[SP-pm] primeiro modulo cpan

Eduardo Almeida eduardo at web2solutions.com.br
Wed Jan 23 14:08:29 PST 2013


\0\
/0/

hhahahaha .. quando você vê o primeiro módulo lá até demora um pouco pra 
"cair a ficha" ...

Que venha outros módulos

Abs


On 23/01/2013 19:45, Tiago Peczenyj wrote:
> q emossaum!
>
> http://search.cpan.org/~pacman/Lazy-Bool-0.01/
>
> Esse modulo não faz muita coisa de util (ate agora) mas eu bolei uma
> forma simples de fazer um wrap em valores booleanos e deixa-los lazy
> até que seja necessario utiliza-los.
>
> E para deixar mais legal, os operadores and, or e not são suportados E
> lazy. Ou seja vc pode fazer coisas como
>
>    use Lazy::Bool;
>    use Test::More tests=> 3;
>    my $a = 6;
>    my $b = 4;
>    my $x  = Lazy::Bool->new(sub{ $a > $b }); # exemplo ruim mas imagine
> q isso seja "custoso"
>    my $false = Lazy::Bool::false;
>
>    my $result = ($x | $false) & ( ! ( $false & ! $false ) );
>
>    # NOW the expressions will be evaluate
>    ok($result,    "complex expression should be true");
>    ok(!! $x ,  "double negation of true value should be true");	
>    ok(!!! $false, "truple negation of false value should be true");
>
> O codigo em si é simples, faço um override do &, | e ! alem do bool
> (para lidar com o "casting" de objeto para booleano).
>
> Eu tentei suportar && e || mas não foi possivel com o que eu aprendi ate agora.
>
> É claro que existem outros modulos que fazem tudo isso e muito mais.
> Meu objetivo foi entender o PAUSE acima de tudo. E use overload.
>
> Agora ficam algumas duvidas
>
>   - devo implementar curto circuito? originalmente o & e | não são
> curto-circuitados.	 Significa que isto
>
> if ( false & qqcoisa )
>
> o qqcoisa vai ser avaliado sempre. com && eu não tenho isso.
>
> - devo memorizar o resultado da expressão? eu estou adiando até o
> ultimo momento para avaliar a expressão, mas depois vou fazer tantas
> vezes forem necessario. parece esquisito.
>
> Eu imaginei q posso adicionar opções no construtor para adicionar
> estes comportamentos. Ou ligar tudo sem me preocupar, afinal ninguem
> usa isso em produção, é beta, etc. Sugestòes?
>
> De qq forma se eu criar um proximo modulo eu vou usar o dist::zilla
>
> abracetas
>
> Pac
>
>


-- 
Eduardo Almeida - Engenharia de Software
eduardo em web2solutions.com.br - 27 3321-2430 / 27 9839 3755

*WEB2 Solutions* - Inovando, sempre!
-------------- Pr?xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20130123/273242b2/attachment.html>


More information about the SaoPaulo-pm mailing list