Deseos para MQL5 - página 38

 
SK. писал (а):

También me gustaría dejar de usar if().

No he visto algo así en lenguajes de programación populares...


komposter:

Me encontré con un código como este:

while ( true )
{
   if ( condition1 )
   {
      Alert("1");
      break;
   }
 
   if ( condition2 )
   {
      Alert("2");
      break;
   }
 
   break;
}
Creo que eso es lo que hace falta ;)

¿No se llevan los clásicos esta primavera? :-) Veamos un vestido hecho sólo de IF:


if (condition) { // ЭТО IF, КОТОРЫЙ НУЖНО BREAK'НУТЬ ОДНИМ ИЗ НЕСКОЛЬКИХ УСЛОВИЙ
 
  // ...тут делаем че-нить полезное...  
 
  if (!break_condition1) {
 
    // ...продолжаем делать полезное...  
 
    if (!break_condition2) {
 
      // ...продолжаем делать полезное...  
  
    }
  }
}
 
ds2:

¿No se llevan ya los clásicos esta primavera? :-) Mira un vestido hecho sólo con IF's:

¿Ya no leen la discusión de la pregunta antes de responderla? ;)
"Ordenado" exactamente una ruptura de un if, no un árbol infinito "!break_condition".

 
ds2:
SK. escribió (a):

También me gustaría dejar de usar if().

No he visto algo así en lenguajes de programación populares...

О. Eso es, justo en el momento justo.

Lo positivo de esta afirmación es que si no está en otros idiomas, es malo, significa que es algo extraño e innecesario.

En mi opinión, no es así en absoluto. Más bien deberíamos buscar la armonía en la popularidad. La moda no es más que una viva confirmación del efecto rebaño. Las cosas de moda rara vez son realmente útiles o cómodas. La chatarra nunca ha pesado en la mente del hombre común.

No te lo tomes como algo personal, por favor.

La ruptura y continuación es sólo una pequeña herramienta técnica.

Si observas con atención muchos programas, descubrirás que la necesidad de salir de una construcción compleja no surge sólo en el caso de los bucles o los desplazamientos, por la sencilla razón de que las construcciones complejas no se forman sólo a base de bucles y listas. También se forman sobre la base de si. Por lo tanto, sería útil una transición controlada a un paréntesis de cierre externo.

Esa no es la cuestión. Lo que quería decir es que este "pensar": "no lo necesito" es un obstáculo muy poderoso para el desarrollo. Es mucho más útil, en mi opinión, estar en constante búsqueda y no rechazar de la consideración de nuevas decisiones, si tienen al menos un grano de utilidad.

 
SK. писал (а):
ds2:

No he visto nada parecido en los lenguajes de programación populares...

...

romper y continuar es sólo una pequeña herramienta técnica.

...

La idea es genial, creo que todo el mundo estará contento si break for if es diferente de break for while (breakif, breakwhile, breakfor, breakcase por ejemplo)

 


karakuts Al principio quería preguntar por qué debían diferenciarse, pero luego me di cuenta. Es más fácil y más lógico añadir sólo un breakif.


P.D. Empezó con el editor, he matado todo - mis disculpas.

 
karakuts:

La idea es genial, creo que todos estarán contentos si break for if es diferente de break for while (breakif, breakwhile, breakfor, breakcase por ejemplo)

Por cierto, aquí hay un desarrollo de la idea. Hacer una distinción en breakfor, breakcase, etc. sería útil en sí mismo. Evitaría la necesidad de ejecutar (y codificar antes) montones de comprobaciones para salir de una construcción anidada compleja. Lo mismo para continuar.

 

Es aún más fácil introducir un único goto, para evitar una cacofonía de rupturas diferentes: incluso Wirth, que lo criticó, lo dejó en su Pasquale. El goto, por cierto, tiene un mecanismo natural para marcar una marca de transición, que es fácil de hacer mnemotécnico.

 
Mathemat:

Y es aún más fácil, para evitar una cacofonía de rupturas diferentes, introducir un único goto: incluso Wirth, que lo criticó, lo dejó en su Pasquale. Por cierto, Goto tiene un mecanismo natural para marcar una marca de transición, que es fácil de hacer mnemotécnico.

Hace unos 10 años que no utilizo el operador de salto incondicional, había lenguajes de programación (de alto nivel en aquella época) en los que no se podía prescindir de él, pero ahora es un atavismo. :)

P.D. Estoy a favor de mantenerlo, cuatro GOTO's me traen buenos recuerdos :)

 
Mathemat:

Y es aún más fácil, para evitar una cacofonía de rupturas diferentes, introducir un único goto: incluso Wirth, que lo criticó, lo dejó en su Pasquale. Por cierto, Goto tiene un mecanismo natural para marcar una marca de transición, que es fácil de hacer mnemotécnico.

Es maravilloso. Tenemos una cacofonía de ranas en el río en verano:) A partir de ahora los llamaré rompedores:)

 

Una cosa más sobre los externos.

Sería conveniente hacer variables "condicionales " - variables cuya visibilidad y posibilidad de uso dependen de otras variables externas.

Por ejemplo, existe una función "Filtro por parabólica", que se activa mediante la correspondiente variable booleana. Tiene parámetros - "paso" y "máximo" del indicador parabólico. Así, los parámetros deberían ser visibles y estar disponibles para su edición sólo cuando "Filtro Parabólico = true".

Ejemplo 2: Asesor experto en la intersección de 2 medias. El periodo de media lenta debe estar limitado por el periodo de media rápida (y viceversa). Es decir, si fastPeriod = 20, slowPeriod no debe tomar valores inferiores a 21.