我有一個數據類型中找到一個項目是否被包含在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