0
Ich habe eine Datenstruktur wie folgt aus:Zählliste für jedes Objekt
data MultTree b = DataNode b | IndexNode Int Int [MultTree b] deriving (Show)
Denn mit dieser Struktur arbeitet rekursiv brauche ich eine Funktion, die die Objekte einer Liste zählt. Gibt es für jede Art von Objekt eine universelle?
Mein Compiler nur Num als Parameter akzeptiert:
countList :: (Num) => [a] -> a
countList [] = 0
countList (x:xs) = 1 + countList xs
Was ist mit nur 'Länge'? – Carcigenicate
Nun, Sie haben Recht, das wäre eine Option. Auf der anderen Seite würde ich gerne sehen, wie ich diese Funktion selbst durchführen könnte – jublikon
Und entfernen Sie die '(Num) =>'. Die Art, wie Sie sie geschrieben haben, scheint illegal zu sein, und eine Einschränkung der Typenklasse ist unnötig, da Sie die Elemente niemals direkt verwenden. Ändern Sie einfach die Signatur in "countList :: [a] -> Integer", da Sie eine Liste von allem haben und eine Zahl zurückgeben möchten. – Carcigenicate