Я должен был создать структуру данных для дерева, где каждый узел имеет неопределенное количество ветвей. Я предполагаю, что это будет розовое дерево.
data GTree a = Node a [GTree a]
Теперь я должен написать функцию postorderG, которая даст мне список всех моих элементов в моем общем в последовательности постпорядка. Я написал это, но это не кажется правильным... Может ли кто-нибудь мне помочь?
postorderG :: GTree a -> [a]
postorderG (Node x l r) = postorder l ++ postorder r ++ [GTree x]
Node
имеет только два аргумента, поэтому ваша деструктуризация будет выглядеть какpostorderG (Node x children)
. Я предлагаю вам взглянуть наconcatMap
и отметить, чтоpostorderG
имеет требуемый тип для первого аргумента. - person Lee   schedule 11.08.2018