Tôi đang cố gắng hiểu bài báo ΠΣ: Các loại phụ thuộc không có Sugar bằng cách triển khai trình thông dịch và trình kiểm tra loại cho ngôn ngữ. Khi làm như vậy, tôi đã thấy rằng unfold t as x -> u
cú pháp cho các định nghĩa đệ quy (cú pháp được định nghĩa trong Mục 2.1) liên kết một biến, nhưng tôi không hiểu tại sao điều đó lại cần thiết. Không có ví dụ nào trong bài báo thực sự sử dụng ràng buộc biến - tất cả chúng đều sử dụng một dạng tốc ký unfold t
(nghĩa là unfold t as x -> x
).
Tôi làm thấy rằng các loại kiểm tra quy tắc cho nó (từ phần 5) sử dụng biến ràng buộc, nhưng tôi không hiểu được ý nghĩa của việc này. Theo như tôi có thể nói unfold t as x -> u
là hoàn toàn tương đương với let x = unfold t in u
.
Ai đó có thể cung cấp một ví dụ về khi ràng buộc biến là hữu ích hoặc cần thiết? Có một số thuật ngữ kiểm tra loại với hình thức dài unfold
nhưng không phải với hình thức ngắn và let
?