[英]Making a set data type with list data structure in Haskell
在Haskell中編寫插入和成員操作。 確保在ML和Haskell中,您的Set數據類型與列表不同。 在Haskell中,將您的Set類型定義為Eq和Show類的實例。
let setAdd l n = if (elem l n) then l else l ++ [n]
let setMember l i = l !! i
我上面編寫的代碼僅具有在列表上執行的功能。
有沒有辦法將其納入課堂? 抱歉,我正在學習函數式編程。 有沒有一種方法可以真正使Set類具有成員變量,例如列表?
這里的數據類型是[a]
,它已經具有可用的實例,包括Eq
和Show
(順便說一句正確的事)。
如果你想有寫自己的情況下,你應該newtype
的基本類型,在類似的方式:
newtype Set a = Set { getSet :: [a] }
然后您可以編寫:
instance Show a => Show (Set a) where
show (Set a) = ...
instance Eq a => Eq (Set a) where
Set a == Set b = ...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.