我有一个数据类型中找到一个项目是否被包含在k元树
data KTree a = Empty | Leaf a | Node a [KTree a] deriving (Eq, Show)
我想编写一个返回true或false作为一个项目是否被包含在一个功能我的树。
ktreeContains :: Eq a => a -> (KTree a) -> Bool
ktreeContains _ Empty = False
ktreeContains y (Leaf x) = (x==y)
-- code for nodes goes here
于是我意识到我需要找到节点本身是否是该项目,然后递归调用为节点孩子ktreeContains,但我不知道如何做到这一点,因为每个节点可以有许多儿童。
我认为我到目前为止的代码是正确的,但如果没有,请随时纠正我。
任何帮助表示感谢,谢谢。
应该有(ktreeContains Y)在地图中的第一个参数。 – 2009-11-11 23:34:56
它应该是'any(ktreeContains y)ts' – sth 2009-11-11 23:36:53
也许编辑答案会比在答案更正后添加没有意义的评论更好。 – Apocalisp 2009-11-12 00:11:27