Завдяки магії Lisp і відносно простому макросу, ці два приклади коду повністю еквівалентні це схоже на те, якби я сказав вам, Clojurescript має вбудовану підтримку контрактів EVM Lisp дозволяє вам зробити це реальністю. Макроси Lisp дозволяють змінювати саму мову.
В обох випадках кінцевим результатом є конструктор, який дає мені об'єкт, на який я можу викликати всі ці функції Але версія з використанням defcontract набагато простіша для читання та запису Це дозволяє вашій бізнес-логіці зосередитися на тому, що важливо, ваш шаблон генерується за вас
якби ви писали код для декількох контрактів, який з двох прикладів, які я вам показав, ви б віддали перевагу переписувати знову і знову? що б ви віддали перевагу розгляду в піарі? Макроси не виправляють все, але вони є потужним інструментом для зниження складності бізнес-логіки
Я забув включити визначення abi на перший скріншот, що буквально подвоює довжину зразка коду lmao Ви зрозуміли суть Читабельний код хороший. Шаблон змушує ваш мозок пропускати щось. Макроси допомагають видалити шаблони, щоб зробити ваш код більш читабельним
2,48K