[SP-pm] primeiro modulo cpan

Jose Aquino josef.aquino at gmail.com
Thu Jan 24 02:19:12 PST 2013


Parabéns, dificil imaginar a emoção e alegria,
Josef


Em 23 de janeiro de 2013 20:08, Eduardo Almeida <
eduardo at web2solutions.com.br> escreveu:

>  \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 at web2solutions.com.br - 27 3321-2430 / 27 9839 3755
>
> *WEB2 Solutions* - Inovando, sempre!
>
> =begin disclaimer
>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20130124/0318e29e/attachment.html>


More information about the SaoPaulo-pm mailing list