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: . 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.

Referências


Aula 1 - Cálculo Lambda