Dapatkah seseorang mengarahkan saya ke referensi untuk non-definisi dari modulus kontinuitas fungsional dalam PCF? \ newcommand {\ bool} {\ mathsf {bool}}
Andrej Bauer telah menulis posting blog yang sangat bagus mengeksplorasi beberapa masalah secara lebih rinci, tetapi saya akan meringkas hanya sedikit postingnya untuk meminjamkan beberapa konteks untuk pertanyaan ini. The Baire ruang adalah himpunan urutan nomor alam, atau ekuivalen set fungsi dari alami ke alami \ N \ untuk \ N . Untuk pertanyaan ini, kami akan membatasi perhatian hanya pada aliran yang dapat dihitung.
Sekarang, fungsi kontinu jika untuk setiap , nilai hanya bergantung jumlah terbatas elemen , dan itu computably terus menerus jika kita benar-benar dapat menghitung upper terikat pada berapa banyak elemen yang dibutuhkan. Dalam beberapa model perhitungan, sebenarnya mungkin untuk menulis sebuah program yang mengambil fungsi yang dapat dihitung pada ruang Baire dan elemen ruang Baire, dan memberikan kembali batas atas jumlah elemen aliran.
Salah satu trik untuk mengimplementasikan ini adalah menggunakan penyimpanan lokal untuk merekam indeks maksimum ke dalam aliran yang terlihat:
let modulus f xs =
let r = ref 0 in
let ys = fun i -> (r := max i !r; xs i) in
f ys;
!r
Tentu saja, ys
argumennya bukan lagi program yang murni fungsional. Ketertarikan saya pada program ini berasal dari fakta bahwa ia hanya menggunakan toko lokal, dan karenanya murni secara ekstensi . Saya bekerja pada (antara lain) pemrograman imperatif tingkat tinggi, dan sedang merancang teori tipe yang dapat mengklasifikasikan ini sebagai fungsi murni.
Ada contoh yang lebih praktis juga, yang melibatkan hal-hal seperti memoisasi dan koneksi koneksi, tetapi saya menemukan ini contoh yang sangat indah.