Какая минимальная (самая общая) информация требуется для вычисления глубины a Data.Tree
? Достаточен ли пример a Data.Foldable
?
Сначала я попытался fold
a Tree
и застрял, пытаясь найти подходящее Monoid
, похожее на Max
. Что-то подсказывает мне, что поскольку Monoid
(который будет вычислять глубину) должен быть ассоциативным, он, вероятно, не может быть использован для выражения любой форы, которая должна быть осведомлена о структуре (как в 1 + maxChildrenDepth
), но я не уверен.
Интересно, какой процесс мышления позволил бы мне прийти к правильной абстракции для таких случаев.