Condicionais no Cálculo Lambda
Summary
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: . A função escolheu o primeiro argumento, como esperado para “verdadeiro”.
Exemplo 2: Aplicação de falso
Agora, com :
- Substituímos por e por :
Resultado: . A função escolheu o segundo argumento, como esperado para “falso”.
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 e funcionam como condicionais.