Haskell语言学习笔记(93)Data.Text
Data.Text.Read
Prelude> :set -XOverloadedStrings
Prelude> :m +Data.Text.Read
Prelude Data.Text.Read> decimal "123"
Right (123,"")
Prelude Data.Text.Read> decimal "abc"
Left "input does not start with a digit"
Prelude Data.Text.Read> rational "123.4"
Right (123.4,"")
Prelude Data.Text.Read> signed double "-3.4"
Right (-3.4,"")
decimal :: Integral a => Reader a
type Reader a = IReader Text a
type IReader t a = t -> Either String (a, t)
- Data.Text.Read 中的函数用于解析 Text 类型的字符串,将其装换为数值类型。
- decimal 函数负责解析整数值,它接收一个 Text 类型的字符串作为参数,返回 Either 类型的值。
成功时返回一个二元组,字符串所包含的数值以及剩余的字符串
失败时返回错误信息:该输入不以数字开头 - rational 函数与 decimal 相类似,它负责解析有理数的值。
Data.Text.IO
Data.Text.IO 模块负责 Text 的输入和输出。
Prelude> :set -XOverloadedStrings
Prelude> import qualified Data.Text.IO as TIO
Prelude TIO> TIO.putStrLn "Хорошо!"
Хорошо!
Prelude TIO> TIO.putStrLn "哈斯克尔7.6.1的力量"
哈斯克尔7.6.1的力量
Prelude TIO> TIO.putStrLn "感じる"
感じる
Data.Text.Encoding
Prelude> :set -XOverloadedStrings
Prelude> :m +Data.Text
Prelude Data.Text> :m +Data.Text.Encoding
Prelude Data.Text Data.Text.Encoding> encodeUtf8 "Хорошо!"
"\208\165\208\190\209\128\208\190\209\136\208\190!"
Prelude Data.Text Data.Text.Encoding> encodeUtf8 "哈斯克尔7.6.1的力量"
"\229\147\136\230\150\175\229\133\139\229\176\148\&7.6.1\231\154\132\229\138\155\233\135\143"
Prelude Data.Text Data.Text.Encoding> encodeUtf8 "感じる"
"\230\132\159\227\129\152\227\130\139"
Prelude Data.Text Data.Text.Encoding> import qualified Data.Text.IO as TIO
Prelude Data.Text Data.Text.Encoding TIO> TIO.putStrLn $ decodeUtf8 "\230\132\159\227\129\152\227\130\139"
感じる
Haskell语言学习笔记(93)Data.Text的更多相关文章
- Haskell语言学习笔记(88)语言扩展(1)
ExistentialQuantification {-# LANGUAGE ExistentialQuantification #-} 存在类型专用的语言扩展 Haskell语言学习笔记(73)Ex ...
- Haskell语言学习笔记(49)ByteString Text
Data.ByteString String 是 [Char] 的同义词,在使用上存在List的惰性所带来的性能问题. 在处理大型二进制文件时,可以使用 ByteString 来代替 String. ...
- Haskell语言学习笔记(69)Yesod
Yesod Yesod 是一个使用 Haskell 语言的 Web 框架. 安装 Yesod 首先更新 Haskell Platform 到最新版 (Yesod 依赖的库非常多,版本不一致的话很容易安 ...
- Haskell语言学习笔记(20)IORef, STRef
IORef 一个在IO monad中使用变量的类型. 函数 参数 功能 newIORef 值 新建带初值的引用 readIORef 引用 读取引用的值 writeIORef 引用和值 设置引用的值 m ...
- Haskell语言学习笔记(90)Default
安装 data-default-class $ cabal install data-default-class Installed data-default-class-0.1.2.0 Prelud ...
- Haskell语言学习笔记(80)req
req req 是一个好用,类型安全,可扩展,上层的HTTP客户端的库. $ cabal install req Installed req-1.1.0 Prelude> :m +Network ...
- Haskell语言学习笔记(79)lambda演算
lambda演算 根据维基百科,lambda演算(英语:lambda calculus,λ-calculus)是一套从数学逻辑中发展,以变量绑定和替换的规则,来研究函数如何抽象化定义.函数如何被应用以 ...
- Haskell语言学习笔记(66)Aeson
Data.Aeson 安装 aeson $ cabal install aeson Installed aeson-1.2.3.0 Prelude> :m +Data.Aeson Prelude ...
- Haskell语言学习笔记(39)Category
Category class Category cat where id :: cat a a (.) :: cat b c -> cat a b -> cat a c instance ...
随机推荐
- day-06数据类型与深浅拷贝
深浅拷贝 # 值拷贝:应用场景最多 ls = [1, 'abc', [10]] ls1 = ls # ls1直接将ls中存放的地址拿过来# ls内部的值发生任何变化,ls1都会随之变化 ls2 = l ...
- 设计模式之Factory Method模式
作用:将实例的生成交给子类 用Template Method模式来构建生成实例的工厂,这就是Factory Method模式. 在Factory Method中,父类决定实例的生成方式,但并不决定所要 ...
- 20175227张雪莹 2018-2019-2 《Java程序设计》第八周学习总结
20175227张雪莹 2018-2019-2 <Java程序设计>第八周学习总结 教材学习内容总结 第十五章 泛型与集合框架 泛型:主要目的是可以建立具有类型安全的集合框架,如链表.散列 ...
- 2018-2019-2 20175236实验二《Java面向对象程序设计》实验报告
实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 实验要求 没有Linux基础的同学建议先学习<Lin ...
- PPIO 分布式存储在数据分发上有哪些优势?
PPIO 是为开发者打造的去中心化存储与分发平台,让数据存储更便宜.更高速.更隐私.官方网站是 pp.io.PPIO 不仅仅是个存储平台,也是一个分发平台.之前我们写了许多文章介绍 PPIO 的存储 ...
- Linux7.2 UDEV
1. 生成规则文件 touch /etc/udev/rules.d/99-oracle-asmdevices.rules 或者 touch /usr/lib/udev/rules.d/99-oracl ...
- yml文件搞一波
引用https://www.cnblogs.com/zslli/p/8717483.html https://www.cnblogs.com/baoyi/p/SpringBoot_YML.html 划 ...
- Linux下安装docker(1)
1.由于centos系统已经自带docker源了,所以可以直接安装: yum install docker 如果是centos6.5版本的,使用yum -y install docker-io 进行安 ...
- nginx mac
==> nginx Docroot is: /usr/local/var/www The default port has been set in /usr/local/etc/nginx/ng ...
- js小技巧总结
js小技巧总结 1.Array.includes条件判断 function test(fruit) { const redFruits = ["apple", "stra ...