Haskell语言学习笔记(77)Data.HashSet
安装 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的更多相关文章
- Haskell语言学习笔记(88)语言扩展(1)
ExistentialQuantification {-# LANGUAGE ExistentialQuantification #-} 存在类型专用的语言扩展 Haskell语言学习笔记(73)Ex ...
- Haskell语言学习笔记(69)Yesod
Yesod Yesod 是一个使用 Haskell 语言的 Web 框架. 安装 Yesod 首先更新 Haskell Platform 到最新版 (Yesod 依赖的库非常多,版本不一致的话很容易安 ...
- Haskell语言学习笔记(20)IORef, STRef
IORef 一个在IO monad中使用变量的类型. 函数 参数 功能 newIORef 值 新建带初值的引用 readIORef 引用 读取引用的值 writeIORef 引用和值 设置引用的值 m ...
- Haskell语言学习笔记(79)lambda演算
lambda演算 根据维基百科,lambda演算(英语:lambda calculus,λ-calculus)是一套从数学逻辑中发展,以变量绑定和替换的规则,来研究函数如何抽象化定义.函数如何被应用以 ...
- Haskell语言学习笔记(39)Category
Category class Category cat where id :: cat a a (.) :: cat b c -> cat a b -> cat a c instance ...
- Haskell语言学习笔记(28)Data.Map
Map Prelude> import Data.Map as Map Prelude Map> :set -XOverloadedLists Prelude Map> Overlo ...
- Haskell语言学习笔记(93)Data.Text
Data.Text.Read Prelude> :set -XOverloadedStrings Prelude> :m +Data.Text.Read Prelude Data.Text ...
- Haskell语言学习笔记(81)Data.Typeable
Data.Typeable 利用 Data.Typeable,可以打印动态类型信息. class Typeable (a :: k) where typeRep# :: TypeRep a typeR ...
- Haskell语言学习笔记(76)Data.Tree
Data.Tree data Tree a = Node { rootLabel :: a, subForest :: Forest a } deriving (Eq, Read, Show) typ ...
随机推荐
- [UE4]九宫格图片拉伸
Draw As选择:Box Margin:边界尺寸.如果看不清楚,可以把“Draw As”选择“Border”:
- Iptabels防火墙和SElinux
两者的区别: iptables用于设置防火墙(firewall), 即管理内外通信. iptables是Linux下功能强大的应用层防火墙工具iptables 能做到“控制内部机器上网与不上网,访问哪 ...
- css样式,高斯模糊
.blur-container.blur-3 { --bg: url("background.jpg"); background-image: var(--bg); } .blur ...
- web前端 3大储存 Cookie、localStorge、sessionStorage
Cookie: //setCookie function setCookie(name,value){ var Days = 30; var exp = new Date(); exp.setTime ...
- 前端UI框架之layUI学习
用layUI框架来进行我们的页面速写,还是非常不错的,虽然2016年诞生,在我使用的过程中,觉得比bootstrap更轻盈点,总结下用的最多的组件. form表单下拉框: <!DOCTYPE h ...
- OpenCV-Python基本功能
一.图像读取/保存 import cv2 img = cv2.imread("name.png") cv2.imwrite('save.jpg', img) #显示图像 cv2.i ...
- Koa快速入门教程(一)
Koa 是由 Express 原班人马打造的,致力于成为一个更小.更富有表现力.更健壮的 Web 框架,采用了async和await的方式执行异步操作. Koa有v1.0与v2.0两个版本,随着nod ...
- jquery双击事件会触发单击事件
实际工作中,我们经常会遇到在同一个元素上,绑定多种事件类型,比较常见的是单击事件和一些鼠标事件,一般而言影响不大.但是如果同时绑定单击事件和双击事件呢? 其实,只要能够想明白的话,解决方案也比较简单, ...
- 【Jmeter自学】badboy使用(三)
==================================================================================================== ...
- putty的小兄弟psftp的使用
1.双击运行psftp.exe 双击直接运行psftp.exe程序 2.open目标地址 运行psftp后,使用open指令连接目标机器,如: psftp>open 127.0.0.1 3.输入 ...