Apa keterbatasan pemrograman fungsional total? Ini bukan Turing-complete, tetapi masih mendukung sebagian besar dari program yang mungkin. Apakah ada konstruksi penting yang bisa Anda tulis dalam bahasa Turing-lengkap, tetapi tidak dalam bahasa fungsional total?
Dan apakah benar mengatakan bahwa program yang ditulis dalam bahasa fungsional total dapat sepenuhnya dianalisis secara statis, sementara analisis statis dalam bahasa lengkap Turing dibatasi oleh hal-hal seperti masalah penghentian? Dengan itu saya tidak bermaksud bahwa dalam bahasa fungsional total semuanya dapat ditentukan secara statis, karena beberapa hal hanya diketahui pada saat runtime, tetapi maksud saya bahwa dalam teori, program yang ditulis dalam bahasa pemrograman fungsional total yang ideal, dapat dianalisis sehingga semua yang secara teori bisa ditentukan secara statis dapat ditentukan secara statis. Atau masih ada masalah yang tidak dapat dipastikan mewarisi dalam bahasa fungsional total yang membuat analisis statis tidak lengkap? Beberapa masalah akan selalu tidak dapat diputuskan, tidak peduli dalam bahasa apa mereka ditulis, tetapi saya tertarik dengan masalah yang mewarisi bahasa tersebut,
sumber
X
, apakah(identity X)
Mesin Turing yang berhenti?" Tentu, itu sepertinya bukan tentangidentity
, tetapi bagaimana Anda mendefinisikan "tentang"?Sisi lain dari ini adalah batas-batas pada daya ekspresif dari total bahasa pada dasarnya adalah batas-batas pada daya ekspresif matematika itu sendiri . Misalnya, fungsi yang dapat didefinisikan dalam Coq (asisten bukti) adalah fungsi yang dapat dibuktikan menggunakan ZFC, dengan banyak kardinal yang tidak dapat diakses. Jadi pada dasarnya setiap fungsi yang Anda dapat membuktikan total kepuasan seorang matematikawan yang bekerja dapat didefinisikan dalam Coq.
Sisi lain dari sisi lain adalah matematika itu sulit! Jadi tidak ada pengertian yang mudah di mana bahasa total "sepenuhnya dapat dianalisis" - bahkan jika Anda tahu bahwa suatu fungsi berakhir, Anda mungkin masih harus melakukan banyak pekerjaan kreatif untuk membuktikan bahwa ia memiliki properti yang Anda inginkan. Misalnya, hanya mengetahui bahwa fungsi dari daftar ke daftar adalah total, tidak membuat Anda terlalu jauh dalam membuktikan bahwa itu adalah fungsi penyortiran ....
sumber