Estratégia de avaliação: diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
Linha 21:
===Chamada por referência===
 
Na avaliação de ''chamada por referência'', uma funçãifunção recebe uma referência implicita como argumento, em vez de uma cópia do seu valor. Isto significa que a função pode modificar o argumento, o que será visto por quem chamou. Chamada por referência, portanto, tem a vantagem de ter um maior espaço de tempo e de eficiência, bem como o potencial de maior comunicação entre a função e que a chamou. Apesar disto, a disvantâgemdesvantagem da ''chamada por referência'' é que a função necessita de passos especial para proteger os valores que pretende passar a outras funções.
 
Várias linguagens suportam ''chamada por referência'' de uma forma ou de outra, mas apenas algumas usam isto como padrão. [[Perl]] e [[Visual Basic]] são duas linguagens que usam a passagem de referência como padrão, embora o [[Visual Basic]] também ofereça uma sintaxe especial para a chamada por valor de parâmetros. Poucas linguagens como [[C++]], tem como padrão chamada por valor, apesar de oferecer recursos para a chamada por referência de parâmetros. Em linguagens funcionais puras não existe semântica diferente entre as duas estratégias, estas são geralmente descritas como chamada por valor, apesar de suas implementações utilizamutilizarem chamada por referência em nível interno. Isso ocorre uma vez que as suas estruturas de dados sejam imutáveis, pelo que não há possibilidade de uma função modificar qualquer um dos seus argumentos.
 
=== Chamada por copia e restauração (''copy-restore'') ===