Skip to content

elc117/apresentacao-bim1-2025b-SamSteffler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Efeitos Colaterais e Dados Imutáveis

Efeitos Colaterais

Em suma, efeitos colaterais na programação são todas as ações não relacionadas à leitura de valores de entrada e retorno do valor de saída à função principal. Os principais exemplos de efeitos colaterais são a alteração no valor de variáveis globais, das variáveis de entrada e operações de entrada/saída como impressões no terminal.

Os efeitos colaterais têm como desvantagens a maior dificuldade de depuração de código e redução na modularização do código. Como linguagens funcionais baseiam-se na inexistência de efeitos colaterais, as funções destas apenas realizam a leitura de dados de entrada e retornam o valor de saída da expressão definida pela sua função. As vantagens são a maior modularidade (pois cada manipulação invoca uma função específica) e facilidade em realizar testes, visto que apenas a saída da função é retornada à função invocadora.

Dados Imutáveis

Na programação funcional, os dados passados como parâmetros de função nunca são alterados. Além disso, declarações de funções e variáveis (que nesse contexto podem ser chamadas de constantes) não podem mais serem alteradas após a sua criação.

As vantagens da aplicação de dados imutáveis na programação funcional incluem a segurança em relação a dados mutáveis e também são mais amigáveis para aplicações em paralelo.


Exemplos

Dados Imutáveis

Exemplo de imutabilidade em Haskell:

Exemplo de mutabilidade em Python:

Dados Colaterais

Exemplo de dados colaterais em C:

Exemplo de inexistência de dados colaterais em Haskell:

Referências

Side Effects - Wikipedia

Declarative proggraming - Wikipedia

Immutable object - Wikipedia

About

apresentacao-bim1-2025b-SamSteffler created by GitHub Classroom

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published