Parfois, lorsque je programme, je découvre qu'une structure de contrôle particulière me serait très utile, mais qu'elle n'est pas directement disponible dans mon langage de programmation. Je pense que mon désir le plus courant est quelque chose comme un "split while" (je n'ai aucune idée de comment l'appeler) :
{
foo();
} split_while( condition ) {
bar();
}
La sémantique de ce code serait que foo()
est toujours exécuté, puis la condition est vérifiée. Si elle est vraie, alors bar()
est exécuté et nous retournons au premier bloc (en exécutant ainsi foo()
encore, etc). Merci à un commentaire de l'utilisateur reddit zxqdms J'ai appris que Donald E. Knuth a écrit sur cette structure dans son article. "Programmation structurée avec go to
déclarations" (voir page 279).
Quelles structures de contrôle alternatives constituent, selon vous, un moyen utile d'organiser le calcul ?
Mon objectif ici est de donner à moi-même et aux autres de nouvelles façons de penser à la structuration du code, afin d'améliorer le chunking et le raisonnement.
Note : Je ne demande pas comment généraliser toutes les structures de contrôle possibles, que ce soit en utilisant jne
, if
/ goto
Il s'agit de macros Lisp, de continuations, de monades, de combinateurs, de quarks ou de tout autre élément. Je demande ce que spécialisations sont utiles pour décrire le code.