트리에서 노드의 부모 노드에 액세스 할 수있는 트리 구현이 필요합니다. 나는 트리 노드 Tree a
이있는 경우DataTree (haskell)에서 노드의 부모 가져 오기
data Tree a = Node {
rootLabel :: a, --^label value
subForest :: Forest a --^zero or more child trees
}
그래서 나는 그것의 레이블과 자식에 액세스 할 수 있습니다 Data.Tree 보면서 나는 트리 정의를 참조하십시오. 하지만 부모 노드에 액세스 할 수도 있습니다. 필요에 따라 다른 구현을 선택해야합니까? 어떤 패키지를 권하고 싶습니까?
_Why_ 올라가시겠습니까? 'a'를 수정하려면 [Zippers] (http://www.haskell.org/haskellwiki/Zipper)를 살펴보십시오. 그것은 'Comonad'와 같은 무서운 단어가있는 깊은 토끼 구멍입니다. (Monads IMHO보다 쉽습니다.) – Franky
부모에게 전달하는 함수를 작성해야합니다. 예 :'findPath :: Eq a => a -> Tree a -> [Tree a]'. 전체 트리의 일부를 변경하려면'updateNode :: Eq a => a -> ([Tree a] -> Tree a) -> Tree a -> Tree a'와 같은 함수를 작성하십시오. 그것은 정말로 당신이하려고하는 것에 달려 있습니다. – Vektorweg