Tiêu đề khá nhiều tổng kết cho câu hỏi của tôi: có hình phạt thời gian chạy liên quan đến kiểu chữ của Haskell hay chỉ là một trong những thứ đó (như các loại ma) mà không có hậu quả thời gian chạy nào?Có hình phạt thời gian chạy liên quan đến typeclasses không?
Trả lời
Yêu cầu typeclass giống như truyền một đối số thừa cho hàm chứa các thành viên của lớp loại như cấu trúc dữ liệu, vì đằng sau hậu trường là những gì nó được đưa vào trong GHC.
Điều đó nói rằng, GHC khá giỏi trong nội tuyến và chuyên mã sử dụng typeclasses đến điểm không phải vấn đề, với -O2 một tỷ lệ rất lớn chỉ biến mất, nhưng thậm chí không có loại tối ưu đối số là khá rẻ.
Vì vậy, chi phí là nhiều hơn loại ma hoặc kiểu mới nhưng không quá cao.
Ngoài ra, chi phí trong các trình biên dịch khác có thể thay đổi. ví dụ. JHC thực hiện phân tích trường hợp một cách hiệu quả trên các nhà xây dựng kiểu bằng cách sử dụng một dạng phụ thuộc hạn chế, do đó bạn trả tiền cho số biến kiểu bị ràng buộc, không phải số lượng các ràng buộc khi làm việc trong JHC.
- 1. thời gian chạy phạt của C++ thử khối
- 2. Chỉ trả lại thời gian không liên quan javascript
- 3. Mối quan tâm liên quan đến node.js
- 4. Hiệu suất của trình liên kết liên quan đến không gian hoán đổi?
- 5. Thêm hình ảnh trong thời gian chạy
- 6. Đường ray Chủ Nhật trước đó liên quan đến bất kỳ thời gian hẹn giờ
- 7. Có hình phạt cho việc trộn không gian màu không? (Core Graphics)
- 8. Mã của Crockford liên quan đến Mô hình Gọi Constructor
- 9. Chèn danh sách liên kết chạy nhầm lẫn thời gian
- 10. Có phiên bản nào của os.getcwd() không liên quan đến các liên kết tượng trưng không?
- 11. R: Tìm và thêm các hàng bị thiếu (/ không tồn tại) trong khung dữ liệu liên quan đến thời gian
- 12. Trong Eclipse, làm thế nào để có các cấu hình khởi chạy liên quan đến dự án?
- 13. Cách tắt counter_cache liên kết Rails tại thời gian chạy
- 14. Tham chiếu và con trỏ có liên quan đến đa hình không?
- 15. Tìm tham chiếu đến đối tượng trong thời gian chạy
- 16. Liên kết tĩnh Cython với thời gian chạy python?
- 17. Bạn gọi một kiến trúc "Mô hình-Xem-Bộ điều khiển" có liên quan đến GUI (không liên quan đến GUI) là gì?
- 18. Truy vấn SQL chậm liên quan đến CONTAINS và OR
- 19. Sự khác biệt giữa liên kết động thời gian tải và liên kết động thời gian chạy
- 20. Các thay đổi được giới thiệu trong gcc 4.5 liên quan đến việc liên kết?
- 21. Hadoop ClassNotFoundException liên quan đến MapClass
- 22. Thời gian tồn tại của một tài liệu tham khảo liên quan đến mục tiêu của mình với
- 23. Làm thế nào để thực hiện plupload trực tiếp đến s3 với thời gian chạy 'html5'?
- 24. Là thời gian chạy generics hay biên dịch đa hình thời gian?
- 25. CMAttitude và CATransform3D có liên quan đến ma trận quay không?
- 26. django chúng ta có thể chọn một trường liên quan trên mô hình có liên quan đến tìm nạp trước không?
- 27. django-compressor: hình ảnh CSS có đường dẫn liên quan đến thư mục
- 28. Thời gian chạy D dưới dạng DLL
- 29. Android cách tạo hình thu nhỏ thời gian chạy
- 30. Không gian tên hoặc mô-đun "Thời gian chạy" không được xác định
Việc vượt qua đối số bổ sung là giá rẻ. Việc gọi hàm chưa biết trong bản ghi đã vượt qua đó rất tốn kém. Vì vậy, loại lớp học là khá tốn kém, trừ khi trình biên dịch quản lý để chuyên chúng đi. – augustss
Tôi luôn đánh giá cao kiểu trả lời của Augustss. Cung cấp các câu trả lời có chất lượng cao và ngắn gọn đến nỗi nhiều người hỏi không hiểu giá trị đầy đủ của họ (kể từ năm 2011). Đôi khi tôi cảm thấy chúng ta nên làm một bot luôn luôn nhận xét về câu trả lời của mình/ý kiến nói rằng "Wow, đó là tốt để biết!". –
Đúng, tôi cho rằng tôi nên thêm vào báo trước gọi một chức năng từ từ điển bạn đã chuyển yêu cầu ít nhất một, thường là 2 bước gián tiếp, có nghĩa là các quầy hàng đường ống, v.v. –