Bất cứ ai cũng biết những gì được bao gồm trong ngôn ngữ racket/base
. Tôi đang tìm kiếm để so sánh các định nghĩa không gian tên racket/base
với dự thảo R7RS để có được một ý tưởng tay đầu tiên của cách Racket khác nhau là từ Đề án.vợt/base namespace
Trả lời
Sự khác biệt sẽ là lớn, giống như bất kỳ triển khai Đề án thực tế nào khác. Để cung cấp cho bạn một ý tưởng thô, tôi thấy hơn 1300 số nhận dạng từ racket/base
và racket
tăng lên đến hơn 2000. Ngoài ra, lưu ý rằng so sánh tên sẽ không phải là toàn bộ câu chuyện - có sự khác biệt bổ sung, như thực tế là Racket sử dụng các cặp không thay đổi theo mặc định, và giống như thực tế là bạn được đảm bảo thứ tự đánh giá từ trái sang phải.
Một cách nhanh chóng để có được danh sách chính mình cho cựu sẽ là để đảm bảo rằng XREPL được cài đặt (có file ~/.racketrc
của bạn có chứa (require xrepl)
), sau đó bắt đầu vợt với racket/base
như là ngôn ngữ REPL, và sử dụng ,ap
(apropos) lệnh không có tham số nên nó cho bạn thấy tất cả các tên ràng buộc:
$ racket -I racket/base
Welcome to Racket v5.2.1.
-> ,ap
Để đọc về tên, bạn có thể sử dụng lệnh ,doc
, hoặc chỉ cần sử dụng search box trong tài liệu.
Theo The Racket Reference:
Trừ khi có ghi chú khác, các ràng buộc được định nghĩa trong sách hướng dẫn này được xuất khẩu bởi vợt/cơ sở và các ngôn ngữ vợt.
Thật không may là không hữu ích lắm vì đây là tài liệu tham khảo lớn. Nhưng, vì bạn đang so sánh R7RS với Racket, có thể hữu ích khi chỉ duyệt qua toàn bộ tham chiếu để có ý tưởng về những gì có sẵn.
Thẳng đến điểm câu trả lời và nhân tiện, bản phác thảo r7rs trông giống như một ngôn ngữ thực tế. – cobie
"Thực tế" là một thuật ngữ tương đối ... Nó thực tế hơn so với r5rs, nhưng nó sẽ không có chủ đề, quy trình con, mạng, không chặn IO, và gazillion những thứ khác, do đó, sự khác biệt là rất lớn. Ngay cả những ngôn ngữ lớn sẽ không có tất cả những điều này. –