Incorporare tipi di tipo più alto (monadi!) Nel calcolo Lambda non tipici
-
30-10-2019 - |
Domanda
È possibile codificare vari tipi nel calcolo Lambda non titole attraverso funzioni di ordine superiore.
Examples:
zero = λfx. x
one = λfx. fx
two = λfx. f(fx)
three = λfx. f(f(fx))
etc
true = λtf. t
false = λtf. f
tuple = λxyb. b x y
null = λp. p (λxy. false)
Mi chiedevo se qualche ricerca sia andata a incorporare altri tipi meno convenzionali. Sarebbe geniale se esiste un teorema che afferma che qualsiasi tipo può essere incorporato. Forse ci sono restrizioni, ad esempio solo tipi di tipo * possono essere incorporati.
Se è davvero possibile rappresentare tipi meno convenzionali, sarebbe fantastico vedere un esempio. Sono particolarmente entusiasta di vedere come sono i membri della classe di tipo Monad.
Nessuna soluzione corretta
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow