O que significa "Chamada por Nome"?
Índice
Call-by-name é um jeito de avaliar expressões em linguagens de programação. Nesse método, o programa não avalia uma expressão até que o valor dela seja realmente necessário. Isso significa que, se um valor não for usado, ele nem sequer é calculado.
Como Funciona
Quando você usa call-by-name, sempre que uma função é chamada, os argumentos são passados sem serem avaliados antes. Se a função usar o argumento, ele é avaliado naquele momento. Se o argumento não for usado na função, isso evita cálculos desnecessários.
Vantagens
Uma grande vantagem do call-by-name é que ele pode economizar tempo e recursos. Se uma expressão é complexa e não necessária o tempo todo, não vai perder esforço computando seu valor. Isso pode deixar o programa mais rápido e eficiente em certos casos.
Desvantagens
Por outro lado, call-by-name também pode causar alguns problemas. Se o argumento tiver efeitos colaterais, ou seja, se ele faz coisas além de apenas retornar um valor, esses efeitos podem acontecer várias vezes se o argumento for usado várias vezes na função. Isso pode fazer o programa se comportar de maneiras inesperadas.
Comparação com Call-by-Value
Call-by-name é frequentemente comparado com call-by-value. No call-by-value, os argumentos são avaliados antes de serem passados para uma função. Isso pode ser mais direto, mas também pode fazer mais trabalho do que o necessário se alguns valores nunca forem usados.