Les macros sont utilisées pour mettre à la disposition du programmeur une séquence d'instructions de calcul sous la forme d'une seule instruction de programme, ce qui rend la tâche de programmation moins fastidieuse et moins sujette aux erreurs. [
Je sais qu'ils sont mis en œuvre de manière extrêmement dangereuse en C / C ++. Ne peuvent-ils pas être mis en œuvre de manière plus sûre? Les inconvénients des macros sont-ils vraiment assez importants pour l'emporter sur la puissance massive qu'ils fournissent?
Le préprocesseur C est attaché à C, mais il a une syntaxe complètement différente du langage principal: espace blanc syntaxiquement significatif (la fin de la ligne termine une instruction, un espace après que la macro détermine le début de la liste de remplacement) blocs basés sur des mots clés au …
À partir de différentes comparaisons entre les modèles C ++ et les génériques C # / Java comme celui-ci- /programming/31693/what-are-the-differences-between-generics-in-c-and-java-and-templates-in-c/31929#31929 J'ai l'impression que les modèles C ++ sont implémentés par une sorte de prétraitement (remplacement de texte brut avant l'analyse), et non par compilation. Parce que la vérification de type …
Common Lisp vous permet d'écrire des macros qui effectuent la transformation source que vous souhaitez. Scheme vous offre un système hygiénique de correspondance de motifs qui vous permet également d'effectuer des transformations. Quelle est l'utilité des macros dans la pratique? Paul Graham a déclaré dans Beating the Averages que: Le …
J'apprends Scheme du SICP et j'ai l'impression qu'une grande partie de ce qui rend Scheme et, plus encore, LISP spécial est le système macro. Mais, comme les macros sont développées au moment de la compilation, pourquoi les gens ne font-ils pas des systèmes de macros équivalents pour C / Python …
Je lis «The Standard C Library» de PJ Plauger, ce qui est vraiment intéressant. Le livre explique non seulement comment UTILISER la bibliothèque mais aussi comment elle est implémentée. J'ai fini de lire la ctype.hsection et dans l'en-tête les fonctions sont déclarées à la fois comme macros ET fonctions. Par …
Dans l'état actuel des choses, cette question ne convient pas à notre format de questions / réponses. Nous nous attendons à ce que les réponses soient étayées par des faits, des références ou une expertise, mais cette question suscitera probablement un débat, des arguments, des sondages ou une discussion approfondie. …
J'essaie d'apprendre un LISP et j'ai beaucoup lu sur l'importance des macros LISP, donc je voudrais acquérir une certaine expérience de travail avec elles. Pouvez-vous suggérer un domaine d'application pratique qui me permettrait d'utiliser des macros pour résoudre un problème du monde réel et comprendre l'utilité de cette construction de …
Lors de la recherche de décorateurs Python, quelqu'un a déclaré qu'ils étaient aussi puissants que les macros Lisp (en particulier Clojure). En regardant les exemples donnés dans PEP 318, il me semble que ce ne sont que des moyens sophistiqués d'utiliser de vieilles fonctions simples d'ordre supérieur dans Lisp: def …
Disons que je veux avoir plusieurs types de messages de sortie dans mon code. L'un d'eux est DEBUG, qui est imprimé uniquement, lorsque le code est compilé en mode débogage. Habituellement, je devrais écrire quelque chose comme #ifdef DEBUG std::cout << "Debug message" << std::endl; #endif ce qui est assez …
J'ai entendu dire que les macros Clojure sont plus faciles à écrire mais pas aussi fiables que les macros hygiéniques de Racket. Ma question comporte 2 parties: En quoi gensymdiffèrent - elles des macros hygiéniques? Que proposent les macros de raquette que Clojure ne propose pas? (que ce soit la …
J'ai lu sur les bibliothèques que les gens ont écrites pour des langages comme Java et C # qui utilisent le tissage de code octet pour faire des choses comme intercepter des appels de fonction, insérer du code de journalisation, etc. J'ai également lu des macros Lisp / Clojure dans …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.