Souhaits pour le MQL5 - page 38

 
SK. писал (а):

J'aimerais aussi que l'on arrête d'utiliser la fonction if().

Je n'ai pas vu quelque chose comme ça dans les langages de programmation populaires...


komposter:

Je suis tombé sur un code similaire à celui-ci :

while ( true )
{
   if ( condition1 )
   {
      Alert("1");
      break;
   }
 
   if ( condition2 )
   {
      Alert("2");
      break;
   }
 
   break;
}
Je pense que c'est ce qu'il faut ;)

Ne portent-ils pas des classiques ce printemps ? :-) Voyons voir une robe faite de rien d'autre que des IF :


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

Ne portent-ils pas déjà des classiques ce printemps ? :-) Voyez une robe faite uniquement avec des IF :

Ne lisent-ils plus la discussion de la question avant d'y répondre ? ;)
"Ordonné" exactement une rupture d'un if, pas un arbre infini "!break_condition".

 
ds2:
SK. a écrit (a) :

J'aimerais aussi que l'on arrête d'utiliser la fonction if().

Je n'ai pas vu quelque chose comme ça dans les langages de programmation populaires...

О. C'est ça, en plein dans le mille.

L'affirmation positive dans cette déclaration est que si ce n'est pas dans d'autres langues, c'est mauvais, cela signifie que c'est quelque chose d'étranger et d'inutile.

À mon avis, ce n'est pas du tout le cas. Nous devrions plutôt rechercher l'harmonie dans la popularité. La mode n'est rien d'autre que la confirmation éclatante de l'effet de troupeau. Les choses à la mode sont rarement vraiment utiles ou confortables. Les produits de pacotille n'ont jamais pesé dans l'esprit de l'homme du peuple.

Ne le prenez pas personnellement, s'il vous plaît.

Le break and continue est juste un petit outil technique.

Si vous examinez attentivement de nombreux programmes, vous constaterez que la nécessité de sortir d'une construction complexe ne se présente pas uniquement dans le cas de boucles ou de listes, pour la simple raison que les constructions complexes ne sont pas formées uniquement sur la base de boucles et de listes. Ils sont également formés sur la base de "si". Une transition contrôlée vers une parenthèse fermante externe serait donc utile.

Ce n'est pas la question. Ce que je voulais dire, c'est que ce "penser" : "Je n'en ai pas besoin" est un obstacle très puissant au développement. Il est beaucoup plus utile, à mon avis, d'être en recherche constante et de ne pas rejeter de la considération de nouvelles décisions, si elles ont au moins un grain d'utilité.

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

Je n'ai rien vu de tel dans les langages de programmation populaires...

...

break and continue est juste un petit outil technique.

...

L'idée est excellente, je pense que tout le monde sera satisfait si le break for if est différent du break for while (breakif, breakwhile, breakfor, breakcase par exemple).

 


karakuts Au début, je voulais demander pourquoi il fallait les différencier, mais ensuite j'ai réalisé. Il est plus facile et plus logique d'ajouter un simple breakif.


P.S. J'ai commencé avec l'éditeur, j'ai tout tué - mes excuses.

 
karakuts:

L'idée est excellente, je pense que tout le monde sera satisfait si le break for if est différent du break for while (breakif, breakwhile, breakfor, breakcase par exemple).

Au fait, voici un développement de l'idée. Faire une distinction entre breakfor, breakcase, etc. serait utile en soi. Cela éviterait d'avoir à exécuter (et à coder plus tôt) un grand nombre de contrôles pour sortir d'une construction imbriquée complexe. Idem pour continuer.

 

Et il est encore plus facile, pour éviter une cacophonie de ruptures différentes, d'introduire un seul goto : même Wirth, qui l'a critiqué, l'a laissé dans son Pasquale. Le goto, d'ailleurs, possède un mécanisme naturel pour marquer une marque de transition, facile à rendre mnémotechnique.

 
Mathemat:

Et il est encore plus facile, pour éviter une cacophonie de ruptures différentes, d'introduire un seul goto : même Wirth, qui l'a critiqué, l'a laissé dans son Pasquale. Goto, d'ailleurs, a un mécanisme naturel pour marquer une marque de transition, qui est facile à rendre mnémotechnique.

Je n'ai pas utilisé l'opérateur de saut inconditionnel depuis environ 10 ans, il y avait des langages de programmation (de haut niveau à l'époque) où l'on ne pouvait pas s'en passer, mais maintenant c'est un atavisme ! :)

P.S. Je suis d'accord pour le garder, quatre GOTO's me rappellent de bons souvenirs :)

 
Mathemat:

Et il est encore plus facile d'introduire un seul goto, pour éviter une cacophonie de ruptures différentes : même Wirth, qui l'a critiqué, l'a laissé dans son Pasquale. Goto, d'ailleurs, a un mécanisme naturel pour marquer une marque de transition, qui est facile à rendre mnémotechnique.

Merveilleux. Nous avons une telle cacophonie de grenouilles à la rivière en été! :) Je les appellerai désormais des briseurs de grève :)

 

Une dernière chose à propos des externes.

Il serait pratique de faire des variables "conditionnelles" - des variables dont la visibilité et la possibilité d'utilisation dépendent d'autres variables externes.

Par exemple, il existe une fonction "Filtre parabolique", qui est activée par la variable booléenne correspondante. Il possède des paramètres - "étape" et "maximum" de l'indicateur parabolique. Ainsi, les paramètres devraient être visibles et disponibles pour l'édition uniquement lorsque "Filtre parabolique = true".

Exemple 2 : Conseiller expert sur l'intersection de 2 moyennes. La période de moyenne lente doit être limitée par la période de moyenne rapide (et vice versa). Par exemple, si fastPeriod = 20, slowPeriod ne doit pas prendre des valeurs inférieures à 21.