2012-03-22 27 views
18

Tôi đã đọc LYAH và đọc rằng lớp Num không phải là một tập con của Ord. Điều này có nghĩa rằng có một loại Num mà không phải là một thành viên của Ord, những gì có thể tạo thành một loại như vậy?Lớp Haskell Num không có trong Ord?

Lưu ý: Num không phải là phân lớp của Ord. Điều đó có nghĩa rằng những gì cấu thành cho một số không thực sự phải tuân theo một thứ tự. Vì vậy, đó là lý do tại sao chúng tôi phải chỉ định cả ràng buộc lớp Num và Ord khi thực hiện phép cộng hoặc trừ và so sánh.

Cảm ơn!

Trả lời

26

Complex number (Data.Complex.Complex) là một ví dụ là số (Num) nhưng không thể đặt hàng (không phải là Ord).

+1

Oh! Được rồi, cái đó có lý. Cảm ơn! – Guido

+0

Điều gì là sai khi đặt hàng nó theo từ điển? – semicolon

+2

@semicolon Không có thứ tự số phức nào tương thích với phép nhân của nó. Xem http://math.stackexchange.com/questions/492890/ordering-on-complex-numbers. – kennytm

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