В Scalaz У меня есть Tree[A]
like;Scalaz Tree - поиск глубины min/max из набора TreeLoc
'A'.node('B'.leaf, 'C'.node('D'.leaf), 'E'.leaf)
Теперь позволяет сказать, что есть функция, которая рекурсивно по дереву и возвращает TreeLoc
;
def getCharLoc(c: Char) = tree.loc.find(_.getLabel == c)
Тогда я сделать что-то вроде
Seq('D','E').flatMap(getCharLoc)
Как я мог найти самые низкие и/или самый высокий loc
в дереве. В приведенном выше примере 'D'
является самым низким/самым глубоким местоположением, а 'E'
является самым высоким/самым мелким местом.
Я думал, что каждый loc
имеет метод .path
, который возвращает Stream
от loc к корню. Вызов .length
на этом дал бы подсчет глубины, которую можно было бы сравнить в фокусе слева, но он чувствует себя неуклюжим.
Как я могу это достичь?
Почему именно «Е» тем «неглубоким» место, а не «B», например? – LuGo
Это самый мелкий из набора входных данных, который был всего лишь e & d. Если говорить обо всем дереве, то да, это b .... Наряду с c и e – NightWolf