Praticando Cálculo Lambda: Exercícios e Soluções 2
por Frank de Alcantara em 01/11/2025
Antes de Começar
Para facilitar a compreensão dos conceitos principais, estes exercícios utilizam uma notação que permite operações aritméticas básicas diretamente no cálculo lambda, como adição, subtração, multiplicação, exponenciação e comparações. Em um cálculo lambda puramente teórico, estas operações seriam implementadas usando codificação de Church, mas para os propósitos pedagógicos desta aula, assumiremos que operações como
Estes dez exercícios exploraram as três principais estratégias de avaliação no cálculo lambda e suas implicações práticas:
call-by-value: Avalia argumentos antes de passá-los às funções. Simples e previsível, mas pode fazer trabalho desnecessário e pode não terminar mesmo quando um resultado existe.
Call-by-Name: Substitui argumentos sem avaliá-los, adiando a computação até que seja necessária. Mais poderosa em termos de terminação, mas pode reavaliar a mesma expressão múltiplas vezes.
call-by-need: Combina_call-by-name_ com compartilhamento, avaliando cada expressão no máximo uma vez. Oferece o melhor dos dois mundos: evita trabalho desnecessário e não recomputa expressões.
PARTE 1: ENUNCIADOS
Exercício 1: Diferença Básica entre call-by-value e_call-by-name_
Considere a seguinte função e aplicação:
a) Realize a redução completa usando estratégia call-by-value, mostrando quando cada operação aritmética é avaliada
b) Realize a redução completa usando estratégia_call-by-name_, mostrando quando cada operação aritmética é avaliada
c) Compare os resultados e explique qual estratégia realizou menos operações
Exercício 2: Função que Ignora Argumentos
Dada a função:
Aplique esta função a dois argumentos:
Observe que o segundo argumento
a) Tente reduzir usando call-by-value. O que acontece?
b) Reduza usando_call-by-name_. O processo termina?
c) Explique por que as duas estratégias levam a resultados diferentes
Este artigo completo contém estratégias práticas e dados exclusivos reservados para nossos membros cadastrados.
Continuar com Google Acesso gratuito e instantâneo com sua conta Google(Updated: )