Ciao a tutti,
devo definire una funzione che cerchi un elemento (Int) in un albero binario di ricerca.
Mi è stato imposto di comparare gli elementi usando la funzione compare di Ordering:
Ho definito l'albero come:codice:compare :: Ord a => a -> a -> Ordering
e la funzione per la ricerca come:codice:data Tree = Leaf Int | Node Tree Int Tree deriving (Ordering)
Il problema è che in fase di compilazione, alla riga in cui c'è deriving(Ordering), ottengo questo errore :codice:occursT :: Int -> Tree -> Bool occursT n (Leaf m) = n `compare` m == EQ occursT n (Node t1 m t2) | n `compare` m == LT = occursT (t1) | n `compare` m == GT = occursT (t2) | otherwise = True
Sapreste dirmi cosa sbaglio?codice:Expected kind ‘k0 -> GHC.Prim.Constraint’, but ‘Ordering’ has kind ‘*’ In the data declaration for ‘Tree’
Grazie in anticipo![]()

Rispondi quotando