Có một mô tả hữu ích về tương lai hoặc lời hứa về mặt lý thuyết thể loại? Cụ thể, kép kép phân loại của Tương lai có thể là gì?
Có một mô tả hữu ích về tương lai hoặc lời hứa về mặt lý thuyết thể loại? Cụ thể, kép kép phân loại của Tương lai có thể là gì?
Câu trả lời:
Khi nó xảy ra, tôi đang viết một bài báo về điều này bây giờ. IMO, một cách tốt để suy nghĩ về tương lai hoặc lời hứa là về sự tương ứng của Curry-Howard cho logic thời gian .
Về cơ bản, ý tưởng đằng sau tương lai là nó là một cấu trúc dữ liệu đại diện cho một tính toán đang được tiến hành và trên đó bạn có thể đồng bộ hóa. Về logic thời gian, đây là các nhà điều hành cuối cùng . Này có một cấu trúc monadic: r e t u r n : Một → ◊ Một b i n d : ( Một → ◊ B ) → ◊ Một → ◊ B trong đó r e t u r n
then
Các kép để các nhà điều hành cuối cùng là luôn luôn hành ◻ Một logic thời gian, mà nói rằng tại mỗi ngay lập tức, bạn nhận được một Một . Khi bạn chuyển từ một ngữ nghĩa Kripke của logic thời gian (trong đó bạn chỉ mô hình hóa khả năng chứng minh) sang một ngữ nghĩa phân loại của λ -calculus (trong đó bạn mô hình hóa các thuật ngữ / bằng chứng lambda), thực ra có rất nhiều cách để làm điều này.
Điều đơn giản nhất bạn có thể làm là để có , với lý do khi bạn có một Một , bạn luôn có nó. Điều này hoạt động, nhưng là loại nhàm chán, IMO. :)
Nick Benton và tôi đã tranh luận về việc lập trình rõ ràng với các luồng trong ngữ nghĩa Ultrametric Semantics of Reactive của chúng tôi . Sau đó, Alan Jeffrey đã đề xuất sử dụng LTL như một hệ thống loại trong LTL loại FRP của mình , một quan sát mà Wolfgang Jeltsch cũng đã thực hiện trong bài viết của mình Hướng tới một ngữ nghĩa phân loại phổ biến cho logic thời gian tuyến tính và lập trình phản ứng chức năng .
Sự khác biệt giữa quan điểm của Nick và tôi, và quan điểm mà Alan và Wolfgang đưa ra được hiểu rõ nhất (IMO) bằng cách so sánh cấu trúc được đưa ra trong các bước đầu tiên của Birkedal et al. Trong lý thuyết miền được bảo vệ tổng hợp: lập chỉ mục từng bước trong topos của cây với giấy của Alan. Các đỉnh của cây (presheaves trên các số tự nhiên được sắp xếp theo kích thước) rất giống với loại không gian siêu hình mà Nick và tôi đã sử dụng, nhưng dễ dàng hơn nhiều để so sánh với thể loại của Alan (presheaves theo một loại thời gian rời rạc), vì cả hai đều là presheaf Thể loại.
Nếu bạn quan tâm đến tương lai đặc biệt cho đồng thời, thì có lẽ nên xem xét CTL hơn là LTL. AFAIK, đó là lãnh thổ chưa được khám phá!
EDIT: đây là một liên kết đến dự thảo . Bài viết chủ yếu là về việc thực hiện FRP đánh máy, vì vậy ngôn ngữ là đồng bộ. Nhưng hầu hết các cuộc thảo luận về tương lai / sự kiện trong phần 3.3 về cơ bản cũng nên áp dụng cho các ngôn ngữ thực sự đồng thời.
Try[T]
và Future[T]
là kép, nhưng tôi hoàn toàn không hiểu điều này có nghĩa là gì / theo nghĩa nào.