Ai đó có thể chỉ cho tôi tham chiếu về tính không xác định của mô đun chức năng liên tục trong PCF không?
Andrej Bauer đã viết một bài đăng blog rất hay để khám phá một số vấn đề chi tiết hơn, nhưng tôi sẽ tóm tắt chỉ một chút bài đăng của anh ấy để cho mượn một số bối cảnh cho câu hỏi này. Các Baire không gian là tập hợp các chuỗi số tự nhiên, hoặc tương đương với tập hợp các hàm từ Naturals để bẩm . Đối với câu hỏi này, chúng tôi sẽ chỉ giới hạn sự chú ý của chúng tôi vào các luồng có thể tính toán được.
Bây giờ, một hàm là liên tục nếu với mỗi , giá trị của chỉ phụ thuộc vào một số hữu hạn các phần tử của và nó có thể tính toán liên tục nếu chúng ta thực sự có thể tính toán được một giá trị trên ràng buộc vào bao nhiêu phần tử của là cần thiết. Trong một số mô hình tính toán, thực tế có thể viết chương trình , có chức năng tính toán trên không gian Baire và một phần tử của không gian Baire, và trả lại giới hạn trên cho số lượng phần tử của luồng.
Một mẹo để thực hiện điều này là sử dụng bộ nhớ cục bộ để ghi chỉ mục tối đa vào luồng đã xem:
let modulus f xs =
let r = ref 0 in
let ys = fun i -> (r := max i !r; xs i) in
f ys;
!r
Tất nhiên, ys
đối số không còn là một chương trình chức năng đơn thuần. Quan tâm của tôi trong chương trình này xuất phát từ thực tế là nó chỉ làm cho sử dụng các cửa hàng địa phương, và do đó là extensionally tinh khiết. Tôi làm việc (trong số những thứ khác) lập trình mệnh lệnh bậc cao, và đang thiết kế các lý thuyết loại có thể phân loại đây là một hàm thuần túy.
Cũng có nhiều ví dụ thực tế hơn, liên quan đến những thứ như ghi nhớ và tổng hợp kết nối, nhưng tôi thấy đây là một ví dụ đặc biệt đẹp.