2012-03-22 9 views
18

Stavo leggendo LYAH e ho letto che la classe Num non è un sottoinsieme di Ord. Ciò significa che esiste un tipo Num che non è un membro di Ord, cosa potrebbe costituire un simile tipo?Classe Haskell Num non contenuta in Ord?

Nota: Num non è una sottoclasse di Ord. Ciò significa che ciò che costituisce per un numero non deve necessariamente rispettare un ordine. Quindi questo è perché dobbiamo specificare entrambi i vincoli della classe Num e Ord quando fa addizione o sottrazione e anche confronto.

Grazie!

risposta

26

Complex number (Data.Complex.Complex) è un esempio che è un numero (Num) ma non può essere ordinato (non Ord).

+1

Oh! Ok, questo ha senso. Grazie! – Guido

+0

Cosa c'è di sbagliato nell'ordinarlo lessicograficamente? – semicolon

+2

@semicolon Non esiste un ordinamento di numero complesso che sia compatibile con la sua moltiplicazione. Vedi http://math.stackexchange.com/questions/492890/ordering-on-complex-numbers. – kennytm