Novizio totale qui, in difficoltà.Haskell: come posso definire una classe di caratteri per gli insiemi?
Sto provando a definire una classe di caratteri per insiemi. In questo caso richiederebbe solo la definizione di "esiste". 'Esiste' prenderebbe un set e funzionerebbe su un elemento impostato e restituirà un valore booleano a . Come posso definirlo in Haskell?
È il seguente anche nella giusta direzione? Quindi non v'è la definizione del tipo di classe e un implementazione di set con la lista, per i quali 'esiste' restituisce vero per ora ..
-- Set.hs --
class Set a b where
exists :: a -> (b -> Bool) -> Bool
-- ListSet.hs --
instance Set ListSet a where
exists a f = True
-
(risultato: Troppi parametri per la classe `Set ')
Ovviamente, quest'ultimo richiede che il tipo di elemento sia l'ultimo parametro di tipo per il tipo set - qualcosa non sempre possibile, come se si volesse creare un'istanza per 'a -> Bool'. Le famiglie di tipi associati, d'altra parte, risolvevano ciò proprio bene. – Carl
Grazie! Ho ottenuto il secondo modo di lavorare! Devo ammettere che non capisco cosa succede lì, ma spero che mi si riveli ... – tero