安装 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]制作缩略图

    一.创建一个专门用来做缩略图的角色CameraCharacter,不需要实体模型. 二.Auto Possess Player设置为“Player 0” 三.重力比例改成0(这样在天上的时候就不会往下 ...

  2. [UE4]Format Text

    蓝图会自动把字符串中的占位换成参数输入. 字符串不会自动转换,需要手动转换

  3. OpenJudge 求重要逆序对数

    https://blog.csdn.net/mrvector/article/details/81090165 [题解] 方法与求逆序对的个数类似,用归并排序分治求解.不同之处在于添加了一个虚拟指针p ...

  4. SQLite3数据库

    #SQLite可视化管理工具(SQLite Expert Pro) SQLite特点: 1. 遵守ACID(原子性.一致性.隔离性和持久性)的关系型数据库管理系统:2. 不是一个C/S结构的数据库引擎 ...

  5. jQuery实现评论弹幕、弹幕漂浮、滚动代码

    1.html代码和jquery代码: <!DOCTYPE html> <html> <head lang="en"> <meta char ...

  6. python数字

    #=====>part1:数字类型#掌握:int,float#了解:Long(在python2中才有),complex# num=10# num=int(10)# print(type(num) ...

  7. SQL Server 导入超大脚本

    另外使用window server 版操作系统,执行脚本文件比普通版操作系统大大提升大小限制. 在执行SQL脚本的时候要是出现了这些情况我咋办呢? 步入正轨 应用场景:服务器升级,比如原来是2003的 ...

  8. Python NLTK——代码重用,F5运行py文件cmd闪退,invalid syntax

    打开IDLE,对代码进行保存(Ctrl+S)后,代码都是可以运行的. 但是打开文件就会弹出cmd并闪退,截了好几次图发现报的是Invalid syntax的错. 后来发现应该在IDLE中新建一个fil ...

  9. Spring boot 下使用 Swagger

    通过Swagger 可以更好的将后台的RESTfull API文档化,如下图所示: 1. Swagger 主要依赖以下两个jar包: <!-- https://mvnrepository.com ...

  10. 可恶的 0xc0000005异常

    昨天快下班的时候自己写的代码突然跑出了这个异常,,搞的我特别的无语,因为昨天女朋友要过来了,给我出现了这么一个bug,心里很不爽,果断低下班了,另外一个原因就是公司其他人都跑了,每次基本都是我一个人最 ...