[英]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.