0
У меня есть структура данных, как, что:список Count для любого объекта
data MultTree b = DataNode b | IndexNode Int Int [MultTree b] deriving (Show)
Для работы с этой структурой рекурсивно мне нужна функция, которая подсчитывает объекты списка. Существует ли универсальный для любого типа объект?
Мой компилятор не принимает только Num в качестве параметра:
countList :: (Num) => [a] -> a
countList [] = 0
countList (x:xs) = 1 + countList xs
насчет просто 'length'? – Carcigenicate
Ну, вы правы, что это вариант. С другой стороны, я хотел бы посмотреть, как я могу сделать эту функцию самостоятельно – jublikon
И удалите '(Num) =>'. То, как вы написали это, выглядит незаконным, а ограничение Typeclass не требуется, поскольку вы никогда не используете элементы напрямую. Просто измените подпись на 'countList :: [a] -> Integer', так как у вас есть список чего угодно и хотите вернуть номер. – Carcigenicate