Estudo de Caso - Calculadora

1. Descrição do problema

Respeitando os aspectos de programação funcional em Javascript, deve-se criar uma calculadora genérica para Expressões Aritméticas ilustrada no primeiro exemplo em https://fazaconta.com/calculadora-online.htm (deve-se permitir expressões com potenciação, radiciação, multiplicação, divisão, soma e subtração além do uso de parênteses, colchetes e chaves).

Para cada função, deve-se analisar a adequabilidade de definir especializações e disponibilizá-las para facilitar a vida do usuário. Isso significa que deve-se criar funções da maneira mais genérica possível de modo a fomentar o reuso ao máximo, através da Aplicação Parcial e Currificação.

2. Entrada de dados

A solução deverá permitir a entrada de dados por parte do usuário de seu programa. Isso poderá ser feito através de uma interface HTML, por exemplo. Essa interface não precisa ser rebuscada, basta ser organizada com elementos simples de entrada de dados e exibição dos resultados.

3. Como apresentar a solução?

A solução deverá contar com ao menos um arquivo .html (se optou pela entrada com HTML) e um arquivo .js. Entretanto, tem-se liberdade para organizar a solução em quantos arquivos forem necessários.

O(s) arquivo(s) .js deve(m) conter os códigos Javascript para resolver os problemas, naturalmente, organizado(s) em funções que devem vir acompanhadas de comentários sobre seus respectivos funcionamentos.

4. Restrições

5. Uma solução disponível

O arquivo disponível para download a seguir é uma solução criada por um aluno de uma turma da disciplina de Programação Funcional do DCOMP/UFS. O arquivo compactado contém o arquivo index.html e o arquivo resultado.js, que representam diretamente a solução do problema. Existem ainda mais dois arquivos .js de suporte a funções e uma folha de estilos .css.

Recomenda-se tentar resolver o problema antes de visitar essa solução. Ainda que tome-se conhecimento da solução disponível, recomenda-se realizar modificações e testes nas variadas funções para experimentar e treinar alternativas interessantes.

SOLUÇÃO