如何迭代 Scalaz 中的树
How to iterate over a Tree in Scalaz
Scalaz 树 class 通过 TreeLoc (Javadoc).
证明了看似非常有用的“拉链”功能
但是,我不清楚如何轻松地遍历树(例如,在包含总共 n>k 个节点的树中找到“k-th”节点)而不做很多条件对冲拉链是否在当前children.
列表的末尾
有没有我缺少的简单方法?
从 TreeLoc.find
方法中窃取,你可以这样做:
def findAt[A](tree: TreeLoc[A], k: Int): Option[TreeLoc[A]] = {
Cobind[TreeLoc].cojoin(tree).tree.flatten.drop(k).headOption
}
Scalaz 树 class 通过 TreeLoc (Javadoc).
证明了看似非常有用的“拉链”功能但是,我不清楚如何轻松地遍历树(例如,在包含总共 n>k 个节点的树中找到“k-th”节点)而不做很多条件对冲拉链是否在当前children.
列表的末尾有没有我缺少的简单方法?
从 TreeLoc.find
方法中窃取,你可以这样做:
def findAt[A](tree: TreeLoc[A], k: Int): Option[TreeLoc[A]] = {
Cobind[TreeLoc].cojoin(tree).tree.flatten.drop(k).headOption
}