Я новичок в создании новых типов в Haskell.Это мой тип, который я создал:
data Tag = Table | Td | Tr deriving(Show)
data Table = Item Tag [Table] | Text String
Тип данных Tag также имеет функцию show, где он печатает значения в строку.Я знаю, что этот тип работает рекурсивно, потому что Table использует [Table] в первом значении.Я хочу иметь возможность составить список всех элементов тега и самого внутреннего элемента, который будет текст или пустой список.
Например:
>example = Item Table [Item Td [Item Tr [Text "hello"]]]
>tableList example
["Table","Td","Tr","hello"]
Это то, что я пробовал до сих пор:
tableList :: Table -> [String]
tableList (Item tag _) = [x | x <- show tag]
Но это показывает только "table"
.Я не уверен, как получить доступ ко всем внутренним Tag
значениям.