[Programación] Re: [Programación] Re: [Programación] Duda en
como llevar de C a perl... (
función anónima)
Federico Wiecko
programacion@lugro.org.ar
Thu, 15 Dec 2005 11:15:36 -0300
On Thursday 15 December 2005 09:10, Horacio Castellini wrote:
> > Buenas...
> >
> > @C = sort { $a->[0] cmp $b->[0] or $a->[1] cmp
> > $b->[1] } @C;
> >
> > El OR (ya sea el 'or' o el '||', son comandos
> > equivalentes pero con
> > distinta precedencia) es ansioso, por tanto si el
> > primer operando evalua
> > a true devuelve el _valor_del_mismo_, sino devulve
> > el valor del segundo.
> >
> > Los parentesis no son necesarios, pero pueden
> > agregarse...
> >
> > @C = sort { ($a->[0] cmp $b->[0]) or ($a->[1] cmp
> > $b->[1]) } @C;
> >
> > Saludos,
> > Nicolás.
>
> Tengo una duda,, los operadores OR AND y NOT no
> devuelven valores 0 y 1, y yo requiero -1 0 +1, es
> decir....
>
> 'Menor que 0' si $a < $b
> '0' si $a == $b
> 'Mayor que 0' si $a > $b
no, no es asi ... en tu ejemplo original
int comp_tema(const void *c1,const void *c2)
{
struct mail r1,r2;
int res;
r1=*(struct mail*)c1;
r2=*(struct mail*)c2;
if((res=strcmp(r1.tema,r2.tema))==0)
return strcmp(r1.autor,r2.autor);
return res;
}
pedis comparar por autor solo si el tema es el mismo
Esto es equivalente a lo que puso Nicolas (pero realizando el sort inclusive)
@C = sort { $a->[0] cmp $b->[0] or $a->[1] cmp > $b->[1] } @C;
donde si $a->[0] cmp $b->[0] evalua a Falso ( implica que son iguales )
entonces sólo en ese caso se evalua la expresion $a->[1] cmp $b->[1]
(el operador or nada tiene tiene que ver con el operador || de C).
Slds.
Federico .-
>
> pero el operador OR me debería dar.... si 0 eq F (0
> lógico) y !=0 eq V (1 lógico) (esto lo recuerdo de C)
> entonces (-7) OR X =>1 y (+1) OR X =>1
> Entonces esto no funcaría salvo que el OR en perl
> tenga efecto colateral... (esto me recuerda a la
> guerra de irak...)
>
> Saludos... Horacio (pta: no lo probé porque a mi
> criterio no funcionaría)
>
> Es decir me parece muy mágico el tema de la
> precedencia...
>
>
>
>
>
>
>
>
> ___________________________________________________________
> 1GB gratis, Antivirus y Antispam
> Correo Yahoo!, el mejor correo web del mundo
> http://correo.yahoo.com.ar
>
> _______________________________________________
> Programacion mailing list
> Programacion@lugro.org.ar
> http://www.lugro.org.ar/mailman/listinfo/programacion