glojure - Trình thông dịch Clojure được host trên Go
(github.com/glojurelang)- Trình thông dịch Clojure được thiết kế như một ngôn ngữ "hosted" trên Go, khác với các bản triển khai Clojure dựa trên Go khác
- Hỗ trợ khả năng tương tác (interop) có thể mở rộng, cho phép mọi giá trị Go được dùng như giá trị Glojure và ngược lại
- Cung cấp khả năng truy cập dễ dàng vào các thư viện Go tương tự cách Clojure truy cập framework Java
- Hỗ trợ hai cách sử dụng: công cụ CLI độc lập (glj) và nhúng trong ứng dụng Go
- Khi nhúng, có thể thêm cấu hình có thể script hóa, mở rộng bằng plugin Clojure, và kết hợp hiệu năng của Go với khả năng biểu đạt của Clojure
- Hỗ trợ gọi hai chiều Clojure ↔ Go, cho phép gọi hàm Go từ Clojure và gọi hàm Clojure từ Go
- Tích hợp sẵn nhiều interop của thư viện chuẩn
- Để tránh mơ hồ về namespace, thay
/trong tên package Go bằng:(ví dụ:net/http→net:http) - Có thể expose thêm package bằng cách tạo package map rồi biên dịch trực tiếp
- Để tránh mơ hồ về namespace, thay
- Tính năng REPL tương tác cung cấp chế độ chỉnh sửa Vi/emacs, chỉnh sửa nhiều dòng, tự động hoàn thành bằng tab, lịch sử bền vững, job control và ngắt
- Kiểu số có khác biệt trong ánh xạ với Clojure (ví dụ:
long→int64,char→lang.Char,BigInt→*lang.BigInt) - Hiện vẫn ở giai đoạn phát triển ban đầu, còn lỗi, nhiều tính năng chưa được triển khai và hiệu năng cũng còn hạn chế; không đảm bảo tương thích ngược trước v1
- Giấy phép EPL-1.0
Chưa có bình luận nào.