[英]Haskell: How to use this data structure
我必須使用包含以下數據結構的賦值的代碼:
data Rose a = a :> [Rose a]
但是,我不知道如何使用這個數據結構,例如:我如何創建它的實例,我怎么可能循環一個?
如果有人能幫我解決這個問題。
這種數據類型的構造函數是(:>)
,它的類型是(:>) :: a -> [Rose a] -> Rose a
。 你可以用它來構造值
> 1 :> [] :: Rose [Int]
1 :> []
> 1 :> [2 :> [], 3 :> [1 :> []]] :: Rose [Int]
1 :> [2 :> [], 3 :> [1 :> []]]
它在功能上等同於
data Tree a = Node a [Tree a]
具有不同的名稱,即Tree <=> Rose
和Node <=> :>
如果你想要一個Functor
實例,你就可以
instance Functor (Rose a) where
-- fmap :: (a -> b) -> Rose a -> Rose b
fmap f (a :> rest) = (f a) :> (map (fmap f) rest)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.