graças à magia do lisp e a uma macro relativamente simples, estes dois exemplos de código são totalmente equivalentes é como se eu te dissesse que o Clojurescript tem suporte nativo para contratos EVM O Lisp permite que você faça isso parecer uma realidade. As macros Lisp permitem que você modifique a própria linguagem.
Em ambos os casos, o resultado final é um construtor que me dá um objeto sobre o qual posso chamar todas essas funções mas a versão usando defcontract é muito mais fácil de ler e escrever isso permite que a lógica do seu negócio se concentre no que importa, seu código padrão é gerado para você
se você estivesse escrevendo código para múltiplos contratos, qual dos dois exemplos que eu te mostrei você preferiria escrever repetidamente? qual você preferiria revisar em um PR? macros não resolvem tudo, mas são uma ferramenta poderosa para reduzir a complexidade na sua lógica de negócios.
Esqueci de incluir a definição do abi na primeira captura de tela, o que literalmente dobra o comprimento do exemplo de código lmao você entendeu a ideia código legível é bom. boilerplate faz seu cérebro pular coisas. macros ajudam a remover boilerplate para tornar seu código mais legível
2,51K