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

Conteúdo apagado Conteúdo adicionado
Linha 61:
'''Chamada por necessidade''' é uma versão da ''chamada por nome'', se o argumento da função é avaliado, seu valor é gravado para uso posterior. Em uma configuração pura, livre de efeitos colaterais, isto produz o mesmo resultado da avaliação da chamada por nome, contudo, quanto os argumentos das funções são usados duas ou mais vezes, a ''chamada por necessidade'' é quase sempre mais rápida.
 
Pelo fato da avaliação de expressões acorrer arbritariamente durante a execução, linguagens que usam chamada por necessidade geralmente não suportam efeitos computacionais, como [[:en:mutable object|mutação]]. Isto elimina qualquer comportamento indesejado da variáveis cujos valores mudarmudam antes da sua avaliação. Este é um tipo de avaliação pregiçosa ([[:en:Lazy evaluation | Lazy]]). [[:en:Haskell (programming language)|Haskell]] é a linguagem mais conhecida que usa avaliação de chamada por necessidade.
 
Este é um tipo de avaliação pregiçosa ([[:en:Lazy evaluation | Lazy]]).
 
[[:en:Haskell (programming language)|Haskell]] é a linguagem mais conhecida que usa avaliação de chamada por necessidade.
 
=== Chamada por expansão de macro ===