При генерации кода может быть полезно использовать фигурные скобки в качестве ограниченного по объему раздела кода, который можно вставлять несколько раз в одном и том же методе, и при этом его локальные переменные не могут запускаться в других «экземплярах» сгенерированного кода. которые появляются в той же области. Также полезным является тот факт, что код отличается от другого кода, и вы можете видеть его в виде «блока», подобного программному обеспечению LE GO, которое собирается на месте для массового производства. Еще одним преимуществом было бы то, что поиск и замена могли бы работать во всех вхождениях этого кода, но вы повторно генерируете код повторно (тогда опасно касаться его, и он выключен -пределы). Но если вы сгенерировали код один раз и вам нужно его оттуда поддерживать, то поиск и замена - это просто Бог!
Но мы не должны отвечать на этот вопрос, не указывая, что все эти копии кода просто «кажутся неправильными». DRY - Не повторяйся - правило очевидно нарушается. Таким образом, для рукописного кода, мы, вероятно, не должны этого делать. Но это указывает на, вероятно, более качественную парадигму, которую можно использовать вместо этого, а именно на использование одного из языков homoiconi c, таких как LISP, Scheme, Forth и Factor, которые также не имеют реального синтаксиса или ограничений ключевых слов, и поэтому вы можете писать в DSL и выполнять собственное метапрограммирование и создание парадигмы вместо генерации кода. Книга, которая поразила меня, была « Let over Lambda » Дуга Хойта, и хотя большая часть ее находится в Интернете, я купил копию для последних глав по оптимизации и его реализации Forth в Лисп (вау!) И оно того стоило.