Condicionais no Cálculo Lambda
Abstract
As condicionais no cálculo lambda são representados usando funções para “verdadeiro” (
) e “falso” ( ), que selecionam o primeiro ou o segundo argumento, respectivamente, oferecendo uma base para lógica funcional.
No cálculo lambda, tudo é uma função — até mesmo conceitos como “verdadeiro” e “falso”, que usamos em condicionais (como “se-senão”).
Em linguagens de programação tradicionais, usamos palavras-chave como if
, mas aqui, precisamos codificar essa lógica usando apenas abstrações lambda.
A ideia por trás disso é simples: representamos “verdadeiro” como uma função que escolhe o primeiro de dois argumentos, e “falso” como uma função que escolhe o segundo.
Definição
No cálculo lambda, os valores booleanos são definidos como funções de dois argumentos que selecionam entre eles:
-
Verdadeiro (
): Essa função toma dois argumentos,
e , e retorna — ou seja, “escolhe o primeiro”. -
Falso (
): Definido como: Essa função toma dois argumentos,
e , e retorna — ou seja, “escolhe o segundo”.
Essas definições, conhecidas como codificação de Church para booleanos, transformam os valores lógicos em operadores de seleção, permitindo simular condicionais sem estruturas explícitas como if
.
Exemplo
Exemplo 1: Aplicação de verdadeiro
Considere:
- Substituímos
por e por :
Resultado:
Exemplo 2: Aplicação de falso
Agora, com
- Substituímos
por e por :
Resultado:
Exemplo 3: Simulando um “if”
Suponha que queremos simular “se verdadeiro, retorne 1, senão retorne 0”:
- Usamos
como condição, , e : - Resolvendo: retorna
.
Se usarmos
Isso mostra como