¿Cuáles son las limitaciones de la programación funcional total? No es completo de Turing, pero aún admite un gran subconjunto de los posibles programas. ¿Hay construcciones importantes que podrías escribir en un lenguaje completo de Turing, pero no en un lenguaje funcional total?
¿Y es correcto decir que los programas escritos en lenguajes funcionales totales se pueden analizar completamente estáticamente, mientras que el análisis estático en lenguajes completos de Turing está limitado por cosas como el problema de detención? Con eso no quiero decir que en lenguajes funcionales totales todo se pueda determinar estadísticamente, porque algunas cosas solo se conocen en tiempo de ejecución, pero quiero decir que en teoría, los programas escritos en un lenguaje de programación funcional total ideal, se pueden analizar para que todo lo que en teoría podría determinarse estáticamente puede determinarse estáticamente. ¿O todavía hay problemas indecidibles heredados en lenguajes funcionales totales que hacen que el análisis estático sea incompleto? Algunos problemas siempre serán indecidibles, sin importar en qué idioma estén escritos, pero estoy interesado en los problemas que se heredan del idioma,
fuente
X
, ¿hay(identity X)
una máquina de Turing que se detiene?" Claro, eso no parece ser sobreidentity
, pero ¿cómo define "acerca de"?Sin embargo, la otra cara de esto es que los límites del poder expresivo de las lenguas totales son esencialmente los límites del poder expresivo de las matemáticas mismas . Por ejemplo, las funciones definibles en Coq (un asistente de prueba) son aquellas que pueden demostrarse que son computables usando ZFC, con innumerables cardenales inaccesibles. Por lo tanto, esencialmente cualquier función que pueda probar total para la satisfacción de un matemático que trabaja es definible en Coq.
El otro lado del otro lado es que las matemáticas son difíciles. Por lo tanto, no hay un sentido fácil en el que los lenguajes totales sean "completamente analizables", incluso si sabe que una función termina, es posible que aún tenga que hacer mucho trabajo creativo para demostrar que tiene una propiedad que desea. Por ejemplo, el simple hecho de saber que una función de listas a listas es total, no te lleva muy lejos al demostrar que es una función de clasificación ...
fuente