安装 unordered-containers

$ cabal install unordered-containers
Installed unordered-containers-0.2.9.0
Prelude> import Data.HashSet as HashSet
Prelude HashSet> :set -XOverloadedLists
Prelude HashSet>

Construction

Prelude HashSet> empty
fromList []
Prelude HashSet> singleton "a"
fromList ["a"]

Combine

Prelude HashSet> union [3,4,5] [4,5,6]
fromList [3,4,5,6]
Prelude HashSet> unions [[3,4,5],[4,5,6]]
fromList [3,4,5,6]

Basic interface

Prelude HashSet> HashSet.null empty
True
Prelude HashSet> HashSet.null [3]
False
Prelude HashSet> size [3,5,7]
3
Prelude HashSet> member 3 [3,5]
True
Prelude HashSet> insert 3 [5,7]
fromList [3,5,7]
Prelude HashSet> delete 3 [3,5,7]
fromList [5,7]

Transformations

Prelude HashSet> HashSet.map (+2) [1..6]
fromList [3,4,5,6,7,8]

Difference and intersection

Prelude HashSet> difference [3,4,5] [4,5,6]
fromList [3]
Prelude HashSet> intersection [3,4,5] [4,5,6]
fromList [4,5]

Folds

Prelude HashSet> HashSet.foldl' (+) 0 [1..6]
21
Prelude HashSet> HashSet.foldr (+) 0 [1..6]
21

Lists

Prelude HashSet> toList [1..6]
[1,2,3,4,5,6]
Prelude HashSet> fromList [1..6]
fromList [1,2,3,4,5,6]

Maps

Prelude HashSet> import Data.HashMap.Lazy as HashMap
Prelude HashSet HashMap> toMap [3,4,5]
fromList [(3,()),(4,()),(5,())]
Prelude HashSet HashMap> fromMap [(3,()),(4,()),(5,())]
fromList [3,4,5]

Haskell语言学习笔记(77)Data.HashSet的更多相关文章

  1. Haskell语言学习笔记(88)语言扩展(1)

    ExistentialQuantification {-# LANGUAGE ExistentialQuantification #-} 存在类型专用的语言扩展 Haskell语言学习笔记(73)Ex ...

  2. Haskell语言学习笔记(69)Yesod

    Yesod Yesod 是一个使用 Haskell 语言的 Web 框架. 安装 Yesod 首先更新 Haskell Platform 到最新版 (Yesod 依赖的库非常多,版本不一致的话很容易安 ...

  3. Haskell语言学习笔记(20)IORef, STRef

    IORef 一个在IO monad中使用变量的类型. 函数 参数 功能 newIORef 值 新建带初值的引用 readIORef 引用 读取引用的值 writeIORef 引用和值 设置引用的值 m ...

  4. Haskell语言学习笔记(79)lambda演算

    lambda演算 根据维基百科,lambda演算(英语:lambda calculus,λ-calculus)是一套从数学逻辑中发展,以变量绑定和替换的规则,来研究函数如何抽象化定义.函数如何被应用以 ...

  5. Haskell语言学习笔记(39)Category

    Category class Category cat where id :: cat a a (.) :: cat b c -> cat a b -> cat a c instance ...

  6. Haskell语言学习笔记(28)Data.Map

    Map Prelude> import Data.Map as Map Prelude Map> :set -XOverloadedLists Prelude Map> Overlo ...

  7. Haskell语言学习笔记(93)Data.Text

    Data.Text.Read Prelude> :set -XOverloadedStrings Prelude> :m +Data.Text.Read Prelude Data.Text ...

  8. Haskell语言学习笔记(81)Data.Typeable

    Data.Typeable 利用 Data.Typeable,可以打印动态类型信息. class Typeable (a :: k) where typeRep# :: TypeRep a typeR ...

  9. Haskell语言学习笔记(76)Data.Tree

    Data.Tree data Tree a = Node { rootLabel :: a, subForest :: Forest a } deriving (Eq, Read, Show) typ ...

随机推荐

  1. [UE4]虚幻4 spline组件、spline mesh组件的用法

    最近公司项目需要,把这两个东东好好看了下.不得不说,这两个组件还是非常方便的,但是相关的介绍.教程却非常的少.它们概念模糊,用法奇特,我就总结下吧. 首先,先要明白spline component.s ...

  2. [UE4]Size To content自动适配大小

  3. 20165312 C语言基础调查和JAVA学习展望

    C语言基础调查和JAVA学习展望 一.有关学习技能的经历 掌握一项技能,我认为最重要的是练习和认真程度. 我在上幼儿园的时候学过电子琴,上台表演过多次,但是三四年之后就半途而废了,后来小学毕业之后对钢 ...

  4. 备用DNS域名服务器

    DNS:1.34.151.129,域名:www#eliuliang#com, 个人用解析地址,请勿使用.

  5. WebUploader 手机端上传图片(转)

    https://blog.csdn.net/loserorleader/article/details/50395040

  6. python装饰器(二)

    有参装饰器 def outer(flag): def timer(func): def inner(*args,**kwargs): if flag: print('''执行函数之前要做的''') r ...

  7. 学习js第一天小结

    1.JavaScript的书写方式: <script type="text/javascript">     </script> <script sr ...

  8. Centos下安装Docker集群管理工具Shipyard

    一. Docker Shipyard是什么 ? shipyard是一个开源的docker管理平台,其特性主要包括: 支持镜像管理.容器管理. 支持控制台命令 容器资源消耗监控 支持集群swarm,可以 ...

  9. linux tomcat启动后无法访问

    先是按网上资料先下载安装包,然后上传到linux,启动后发现8080端口并未被占用.查了很多资料,不知道神马原因了.最后用yum安装后就可以访问了. 教程如下: 本教程介绍在CentOS 7服务器上使 ...

  10. fabric-sdk-java在IDEA中的使用

    尝试使用fabric-sdk-java来连接fabric区块链. fabric的安装可参考 http://www.cnblogs.com/maobuji/p/7204446.html 环境准备: JD ...