2.4.2 Dados Etiquetados
Uma maneira de ver a abstração de dados é como uma aplicação do "princípio do menor compromisso". Na implementação do sistema de números complexos, podemos adiar a escolha entre a representação retangular e a polar. No entanto, eventualmente devemos escolher uma representação. E se quisermos que um único sistema trabalhe com ambas as representações?
Type Tags (Etiquetas de Tipo)
A solução é incluir uma etiqueta de tipo—o símbolo rectangular ou polar—como parte de cada número complexo. Isso nos permite distinguir entre formas polares e retangulares:
Carregando playground de código...
Representações Etiquetadas
Agora modificamos a representação de Ben e Alyssa para incluir etiquetas:
Carregando playground de código...
Seletores Genéricos
Agora podemos escrever seletores genéricos que verificam a etiqueta e chamam a função apropriada:
Carregando playground de código...
Construtores Genéricos
Os construtores escolhem automaticamente a representação mais conveniente:
Carregando playground de código...
Esta abordagem permite que diferentes representações coexistam no mesmo sistema. As operações aritméticas de nível superior (add_complex, sub_complex, etc.) não precisam saber qual representação está sendo usada—elas simplesmente chamam os seletores genéricos.
📝 Encontrou algo errado nesta página?
Sua ajuda é muito importante para melhorar a qualidade da tradução!
🐛 Encontrou um erro?
Se você encontrou:
- Erro de tradução (palavra incorreta, termo técnico errado)
- Erro de ortografia ou gramática
- Link quebrado
- Código de exemplo que não funciona
- Problema de formatação
❓ Tem uma dúvida?
Se você tem:
- Dúvida sobre o conteúdo desta seção
- Pergunta sobre um conceito do SICP
- Dificuldade em entender algum exemplo
- Questão sobre a tradução de algum termo
💡 Tem uma sugestão de melhoria?
Se você quer sugerir:
- Melhoria na explicação
- Exemplo adicional
- Recurso visual (diagrama, ilustração)
- Qualquer outra ideia
🌍 Quer discutir a tradução?
Se você quer debater:
- Escolha de tradução de algum termo
- Consistência de terminologia
- Nuances do português
Obrigado por ajudar a melhorar o SICP.js PT-BR! ✨