2.3.2 Exemplo: Diferenciação Simbólica
Como uma ilustração de manipulação de símbolos e um exemplo adicional de abstração de dados, considere o design de uma função que realiza diferenciação simbólica de expressões algébricas.
Regras de Derivação
O programa implementa quatro regras básicas de diferenciação:
Representação de Expressões Algébricas
Usamos notação de prefixo para representar expressões. Por exemplo, a expressão ax + b é representada como:
list("+", list("*", "a", "x"), "b")
O Programa de Diferenciação
Carregando playground de código...
Representando Expressões Algébricas
Implementamos os seletores e construtores para expressões:
Carregando playground de código...
Simplificação Algébrica
Podemos melhorar o programa fazendo os construtores realizarem simplificação:
Carregando playground de código...
Exercícios
Exercício 2.56: Estenda o programa básico de diferenciação para lidar com mais regras de diferenciação, como a regra da potência.
Exercício 2.57: Estenda o programa de diferenciação para lidar com somas e produtos de quantidades arbitrárias de termos (dois ou mais).
Exercício 2.58: Suponha que queremos modificar o programa de diferenciação para que ele funcione com notação algébrica ordinária (infixa), em que + e * são operadores infixos. Como o programa precisaria ser modificado?
📝 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! ✨