Một số sách giới thiệu tốt về lý thuyết loại là gì?


Câu trả lời:


28

Nền tảng phần mềm của Benjamin C. Pierce sẽ là một nơi tốt để bắt đầu. Nó sẽ là một tiền thân tốt cho các loại và ngôn ngữ lập trình của anh ấy . Ngoài ra còn có Lý thuyết Loại và Lập trình Chức năng của Simon Thompson và Bằng chứng và Loại của Girard .


10
Trước tiên, tôi khuyên bạn nên sẵn sàng Loại và Ngôn ngữ lập trình của Peirce trước khi nền tảng phần mềm nâng cao hơn. Đối với ai đó muốn bắt đầu chậm, một cái gì đó như Lambda- Compus và Combinators của Hindley và Seldin là một lời giới thiệu nhẹ nhàng.
Martin Berger

4
Vâng, TAPL là những cuốn sách. Ngoài ra còn có "Chủ đề nâng cao về các loại và ngôn ngữ lập trình" của Pierce như là một phần tiếp theo.
Huck Bennett

@MartinBerger, tôi đã xem qua bảng nội dung cho Lambda-Compus và Combinators và có vẻ hơi nản chí. Bạn có chắc chắn nó giới thiệu nhiều hơn TAPL hoặc SF?
Steven Shaw

1
@StevenShaw Hindley / Seldin bắt đầu với những điều cơ bản và tiến hành rất chậm, nhưng toàn diện. Phần lý thuyết loại không làm bất cứ điều gì ưa thích. Có lẽ lý thuyết loại đơn giản cơ bản của Hindley cũng phù hợp. Tôi chưa bao giờ cầm nó trong tay.
Martin Berger


9

Cuốn sách Những nền tảng thực tiễn cho ngôn ngữ lập trình của Robert Harper (có sẵn dưới dạng bản nháp trực tuyến: http://www.cs.cmu.edu/~rwh/plbook/book.pdf ) là một sự thay thế mạnh mẽ hơn cho các loại ngôn ngữ lập trình và ngôn ngữ.


5

Đó là nhiều hơn về nền tảng toán học và ít hơn về khoa học máy tính, nhưng cuốn sách Lý thuyết loại Homotopy: Cơ sở toán học thống nhất có sẵn miễn phí dưới dạng pdf theo giấy phép CC.


6
Tôi thích chủ đề và cuốn sách, nhưng rõ ràng, nó không giống như nó không cho rằng bạn đã quen thuộc với các quy tắc trừu tượng, giảm bớt, v.v. OP, đến từ việc sử dụng Haskell và hiện đang tò mò về lý thuyết loại, sẽ bị cản trở bởi việc giải thích lý thuyết đồng luân thông qua các loại nhận dạng, trong 80 trang. :)
Nikolaj-K

1
Tôi đồng ý với @NikolajK rằng cuốn sách Hott quá tiên tiến cho người mới bắt đầu lý thuyết loại. Một lộ trình tốt cho một lập trình viên Haskell là học Agda trước. Agda là (đơn giản hóa một chút) Haskell với các loại phụ thuộc và đã được sử dụng để chính thức hóa Hott.
Martin Berger

1
Không giới thiệu :)
Steven Shaw

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.