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

Conteúdo apagado Conteúdo adicionado
Linha 49:
 
Avaliação de ordem normal é uma estratégia onde as expressões ([[:en:redex|redex]]) são sempre reduzidas, aplicando funções antes da avaliação dos argumentos. Isto diferencia ordem normal de chamada por nome, pois chamada por nome não avalia o corpo da função.
 
=== Chamada por nome ===
 
Nesta avaliação, os argumentos não são avaliados de maneira completa, tais argumentos são substituidos diretamente dentro do corpo da função usando substituição do tipo ''capture-avoiding ''. Se um parêmetro não é usado na avaliação da função, este nunca será avaliado, e se o parâmetro é usado varias vezes, este é reavaliado a cada vez.
 
 
Esta avaliação pode ser preferível ao longo da avaliação de chamada por valor porque a avaliação por nome sempre retorna um valor quando este existe.
 
Call-by-name avaliação pode ser preferível ao longo de chamadas, pelo valor de avaliação porque chamada-a-name avaliação semper retorna um valor, quando existe um valor, considerando que a chamada por valor poder não terminar se a avaliação do argumento da função pode não terminar computacionalmente. Os opositores do uso de chamada por name afirmam que esta avaliação é significativamente mais lenta quando o argumento da função é utilizada.
 
Avaliação de chamada por nome é raramente implementada, mas é frequentemente utilizada quando considerada propriedades teóricas de programas e linguagens de programação. Linguagens do mundo real com semântica de chamada por nome são, geralmente, implementadas usando a avaliação de chamada por necessidade.
 
=== Chamada por expansão de macro ===