2011-10-27 41 views

Trả lời

37

Loạidữ liệu loại tham khảo chính xác khái niệm tương tự.

Các Haskell từ khóa typedata là khác nhau, mặc dù: data cho phép bạn giới thiệu một kiểu dữ liệu đại số mới, trong khi type chỉ làm cho một loại từ đồng nghĩa.

Xem chi tiết Haskell wiki.

+1

Để hoàn thành bức tranh, có 'newtype' quá Nắm bắt sự khác biệt giữa 'newtype T a = T a' và' dữ liệu T a = T a' là khó, nhưng khá quan trọng .. –

+0

tôi thấy rằng kiểu mới trên một ví dụ.Vì vậy, sự khác biệt trong ví dụ của bạn là gì? – user997112

+1

@ user997112 'newtype' chỉ là một kiểu thời gian biên dịch được sử dụng để tạo ra một loại từ đồng nghĩa, nhưng được xử lý như một kiểu khác. Bạn có thể bọc nó bên trong một' dữ liệu', nhưng nó sẽ thêm một số phí vào lúc chạy. nó rõ ràng với trình biên dịch mà bạn muốn sự phân biệt kiểu, mà không có chi phí thời gian chạy. Câu chuyện dài: http://www.haskell.org/haskellwiki/Newtype – Ptival

1

Cụm từ đôi khi được trộn lẫn, nhưng thường là "loại dữ liệu" đề cập đến loại được giới thiệu sử dụng từ khóa data, trong đó có các hàm tạo mà bạn có thể khớp mẫu. Đây cũng được gọi là kiểu dữ liệu đại số".

Chỉ cần 'loại' là một thuật ngữ tổng quát hơn mà cũng bao gồm các loại tạo bằng newtype, các loại chức năng và vân vân.

+0

Vì vậy, sẽ gõ vào riêng của nó bao gồm Integer vv? – user997112

Các vấn đề liên quan