Pregunta

Como hay un cálculo de lambda sin tipo, y un cálculo lambda de tipo simplemente (como se describe, por ejemplo, en los tipos de libros y los lenguajes de programación de Benjamin Pierce), ¿hay una lógica combinatoria de tipo simplemente?

Por ejemplo, parece que los tipos naturales para los combinadores S, K y yo serían

S : (a -> b -> c) -> (a -> b) -> a -> c
K : a -> b -> a
I : a -> a

Donde A, B y C son variables de tipo que van sobre algún conjunto de tipos T. Ahora, tal vez podríamos comenzar con un solo tipo de base, Bool. Nuestro conjunto de tipos t es luego bool junto con cualquier tipo se puede formar utilizando los tres patrones

(a -> b -> c) -> (a -> b) -> a -> c
a -> b -> a
a -> a

Donde A, B, C en T.

Habría dos nuevas constantes en el idioma.

T : Bool
F : Bool

Entonces, este lenguaje consiste en los símbolos S, K, I, T y F, junto con los paréntesis. Tiene un tipo de base Bool y los "tipos de funciones" que se pueden hacer de los patrones de combinadores S, K e I.

¿Se puede hacer que este sistema funcione? Por ejemplo, ¿hay una construcción bien tipo if-then-else que se puede formar desde solo S, K, I, T, F?

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a cs.stackexchange
scroll top