OT: php te da馻 la cabeza

Horst H. von Brand vonbrand en inf.utfsm.cl
Mie Jul 26 18:30:11 CLT 2006


Juan Carlos Mu帽oz Ilabaca <jcmunoz en dcc.uchile.cl> wrote:
> Disque el Mi茅rcoles 26 Julio 2006 16:17, Horst H. von Brand escribiosese:
> > Juan Carlos Mu膯卤oz Ilabaca <jcmunoz en dcc.uchile.cl> wrote:
> > > Disque el Mi膯漏rcoles 26 Julio 2006 03:23, Roberto Bonvallet escribiosese:
> > > > Horst H. von Brand:

[...]

> > Mi molestia es casos como:
> >
> >    if(algo)
> >        haga_caso_algo();
> >    else if(otro)
> >        haga_caso_otro();
> >    else
> >        haga_ninguno_de_los_dos();
> >
> > vs
> >
> >    if(algo)
> >        haga_caso_algo();
> >    else
> >        if(tipo_uno_caso_no_algo)
> >            haga_tipo_uno();
> >        else
> >            haga_tipo_dos();
> >
> > Sintacticamente ambos son iguales, pero en el primer caso veo si es algo u
> > otro (o ninguno); en el segundo veo si es algo o no, en caso que no lo sea
> > hay una nueva (sub)discriminacion. Logicamente son diferentes.

> Yo veo que es lo mismo...

Sintacticamente. La idea es que en el 1er caso tengo dos (tres) situaciones
similares, en el 2o hay caso algo verdadero (que se trata de una forma) y
caso de algo falso (que se divide en dos, segun tipo_uno_caso_no_algo).

O sea, p.ej:

   if(!p)
      printf("Tontito, p debe apuntar a algo\n");
   else
       /* OK, tenemos *p, hagamos alguna cosa con el */
       if(p->algunacosa)
            p->lo_otro = 117;
       else
            p->esto = 42;


>                           l贸gicamente es lo mismo de hecho hay lenguajes
> donde el elsif no existe, porque l贸gicamente da lo mismo... y poner else
> if o else \n if es lo mismo...

Sintacticamente.

> > A veces es comodo escribir cosas como:
> >
> >    if(ta_bueno) return 0;
> >
> > y no tener que poner lineas extra.
> >
> > O tambien el poder decir:
> >
> >    x = 0; y = 1; z = 2;
> >
> > y no verme forzado "por la indentacion standard" a poner estas tres
> > instrucciones que /logicamente/ son una unidad ("asignar las coordenadas
> > de...") en tres lineas.
> >
> > Tengo la costumbre ademas de separar con lineas en blanco secuencias de
> > instrucciones que conforman unidades logicas, p.ej. las lineas que
> > actualizan "juntos" los punteros al actualizar una estructura compleja, o
> > una secuencia de operaciones que inicializan/actualizan un struct
> > particular.  Esto le produce indigestion a los esquemas "indentacionistas"

> Eso te lo compro... me parece una buena raz贸n... pero eso se ajusta al hecho 
> de que se pueden usar llaves, osea no es un cambio, es una opci贸n... si yo 
> puedo diferenciar los bloques por llaves o por indentaci贸n, entonces puedo 
> usar lo que mas me acomode...

Eso es inconsistente... no me gustan particularmente los lenguajes en que
/exactamente lo mismo/ se expresa de formas distintas.
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                     Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria              +56 32 654239
Casilla 110-V, Valparaiso, Chile                Fax:  +56 32 797513


M醩 informaci髇 sobre la lista de distribuci髇 Linux