Saltar al contenido

Booleanos y pares

Avanzado Lógica Datos

Tampoco hay booleanos — así que también se construyen. La idea: verdadero y falso son selectores. Un booleano es una función de dos opciones que devuelve una de ellas.

Los selectores

TRUE = λx.λy.x devuelve la primera opción FALSE = λx.λy.y devuelve la segunda opción IF = λb.λt.λe.b t e entrega las opciones al booleano

IF TRUE a b se despliega a TRUE a b → a. El booleano es la sentencia if — no hace falta ninguna palabra clave if.

Los conectivos

NOT = λb.λx.λy.b y x intercambia las opciones AND = λa.λb.a b a si a es TRUE responde b, si no a (=FALSE) OR = λa.λb.a a b si a es TRUE responde a, si no b

Pares: datos por fin

PAIR = λx.λy.λf.f x y «guarda x e y, entrega ambos a f» FST = λp.p TRUE alimenta el par con un selector de primero SND = λp.p FALSE aliméntalo con un selector de segundo

Un par es una función a la espera de un selector. Los dos valores esperan dentro hasta que le pasas TRUE o FALSE para sacar uno:

Silenciosamente enorme Con booleanos y pares tienes if, puertas lógicas y una estructura de datos — suficiente para empezar a construir listas. Todo a partir de la única regla de sustitución. Este es el momento en que el cálculo λ deja de parecer un juguete y empieza a parecer una computadora.
Práctica

IF FALSE x y → ___

λx.λy.y codifica…

SND (PAIR a b) → ___

Un booleano de Church se describe mejor como…