Haskell语言学习笔记(54)Data.Set
Data.Set
Prelude> import Data.Set as Set
Prelude Set> :set -XOverloadedLists
Construction
Prelude Set> empty
fromList []
Prelude Set> singleton 5
fromList [5]
Prelude Set> insert 3 [4,5]
fromList [3,4,5]
Prelude Set> delete 5 [3,4,5]
fromList [3,4]
Operators
Prelude Set> [3,4,5] \\ [4,5,6]
fromList [3]
Query
Prelude Set> Set.null $ []
True
Prelude Set> size [1,2,3]
3
Prelude Set> member 3 [1,2,3]
True
Prelude Set> lookupLT 5 [3, 5]
Just 3
Prelude Set> lookupGE 3 [3, 5]
Just 3
Prelude Set> isSubsetOf [3] [3,5]
True
Combine
Prelude Set> union [3,4,5] [4,5,6]
fromList [3,4,5,6]
Prelude Set> difference [3,4,5] [4,5,6]
fromList [3]
Prelude Set> intersection [3,4,5] [4,5,6]
fromList [4,5]
Filter
Prelude Set> Set.filter even [1,2,3,4]
fromList [2,4]
Prelude Set> partition even [1,2,3,4]
[2,4],fromList [1,3]
Prelude Set> split 3 [1,2,3,4,5]
[1,2],fromList [4,5]
Prelude Set> splitMember 3 [1,2,3,4,5]
[1,2],True,fromList [4,5]
Indexed
Prelude Set> lookupIndex 3 [5,3]
Just 0
Prelude Set> findIndex 3 [5,3]
0
Prelude Set> elemAt 1 [5,3]
5
Prelude Set> deleteAt 1 [5,3]
fromList [3]
Prelude Set> Set.take 2 [1..6]
fromList [1,2]
Prelude Set> Set.drop 2 [1..6]
fromList [3,4,5,6]
Prelude Set> Set.splitAt 2 [1..6]
[1,2],fromList [3,4,5,6]
Map
Prelude Set> Set.map (+2) [1..6]
fromList [3,4,5,6,7,8]
Folds
Prelude Set> Set.foldr (+) 0 [1..6]
21
Prelude Set> Set.foldl' (+) 0 [1..6]
21
Min/Max
Prelude Set> lookupMin [1..6]
Just 1
Prelude Set> findMax [1..6]
6
Prelude Set> deleteMin [1..6]
fromList [2,3,4,5,6]
Prelude Set> deleteFindMax [1..6]
(6,fromList [1,2,3,4,5])
Prelude Set> maxView [1..6]
Just (6,fromList [1,2,3,4,5])
Prelude Set> minView [1..6]
Just (1,fromList [2,3,4,5,6])
Conversion
Prelude Set> toList [1..6]
[1,2,3,4,5,6]
Prelude Set> toAscList [1,5,3]
[1,3,5]
Prelude Set> toDescList [1,5,3]
[5,3,1]
Debugging
Prelude Set> putStrLn $ showTree [1..6]
4
+--2
| +--1
| +--3
+--5
+--|
+--6
Prelude Set> putStrLn $ showTreeWith True True [1..6]
4
|
+--2
| |
| +--1
| |
| +--3
|
+--5
|
+--|
|
+--6
Haskell语言学习笔记(54)Data.Set的更多相关文章
- 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语言学习笔记(77)Data.HashSet
安装 unordered-containers $ cabal install unordered-containers Installed unordered-containers-0.2.9.0 ...
随机推荐
- 消息中间件 ActiveMQ的简单使用
一.AactiveMQ的下载和安装 1. 下载ActiveMQ 地址:http://activemq.apache.org/activemq-5152-release.html 我这里下载的是wind ...
- 【selenium】下拉框和弹出框处理
#-*-coding=utf-8 from selenium import webdriver import os,time driver= webdriver.Firefox() driver.ge ...
- JavaScript中的继承模式总结(九)
一.总结: //js中的几种继承 //原型链的问题,包含引用类型的原型属性会被实例共享,子类型无法给超类型传递参数 function SuperType() { this.colors = [&quo ...
- java判断字符串中是否含有中文
/** * 判断字符串中是否含有中文 */ public static boolean isCNChar(String s){ boolean booleanValue = false; for(in ...
- 自绘图片下拉项 combobox listbox
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...
- RabbitMQ 主题
RabbitMQ (三) 发布/订阅 RabbitMQ主题 RabbitMQ Tutorials
- 样式学习--参照Oracle写法
#------------------------------------------------------------------------------- # Do not change the ...
- golang web框架 beego 学习 (二) router and controller
1 Router和Controller的常用配置 beego.Router("/user/admin", &controllers.UserController{}) // ...
- stm32串口接收完整的数据包
参考了文章:<stm32串口中断接收方式详细比较> 文章地址:http://bbs.elecfans.com/jishu_357017_1_1.html 借鉴了第四种中断方式 串口的配置这 ...
- Maven web项目启动出错
问题描述: 在第一次建立maven项目后,启动测试,结果jsp页面报告404错误 问题解决: 在pom.xml中引入servlet-api 和 jsp-api,maven不会自动的添加,因此,要在首次 ...