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的更多相关文章

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

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

  2. Haskell语言学习笔记(49)ByteString Text

    Data.ByteString String 是 [Char] 的同义词,在使用上存在List的惰性所带来的性能问题. 在处理大型二进制文件时,可以使用 ByteString 来代替 String. ...

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

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

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

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

  5. Haskell语言学习笔记(90)Default

    安装 data-default-class $ cabal install data-default-class Installed data-default-class-0.1.2.0 Prelud ...

  6. Haskell语言学习笔记(80)req

    req req 是一个好用,类型安全,可扩展,上层的HTTP客户端的库. $ cabal install req Installed req-1.1.0 Prelude> :m +Network ...

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

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

  8. Haskell语言学习笔记(66)Aeson

    Data.Aeson 安装 aeson $ cabal install aeson Installed aeson-1.2.3.0 Prelude> :m +Data.Aeson Prelude ...

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

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

随机推荐

  1. Excel--截取所需内容

    如上图,需截取*号后的数字,那么公式怎么写: 1.使用Find和Mid函数: FIND:获取指定字符所在字串的位置: MID:截取字串中的子串. 写法: 2.也可以使用Replace函数代替mid函数 ...

  2. 异常:tomcat与windows时间不同步

    调试一个项目时发现用户那里服务器的Tomcat命令行中log4j输出的时间与操作系统时间不一致,因此日志记录的时间与操作系统时间也不一致,且正好相差8个小时.产生原因是因为Tomcat中的时区设置与操 ...

  3. Delphi编译选项

    编译选项的设置,称为“开关指令”,其中大部分值为布尔类型 一.代码生成(Code generation)1.Optimization  优化代码,默认true2.Stack frames  生成过程/ ...

  4. TensorFlow-GPU+cuda8+cudnn6+anaconda安装遇到的版本错误

    第一遍装的时候是cuda10+cudnn5.1这个诡异的组合,失败 卸载cuda就是把所有的NVIDIA有关的应用都删掉,c盘文件也都删掉,不用留. 第二遍是cuda8+cudnn5.1.版本还是对不 ...

  5. 20175311 2018-2019-2 《Java程序设计》第7周学习总结

    20175311 2018-2019-2 <Java程序设计>第7周学习总结 教材学习内容总结 这一周我主要学习了第八章的内容-常用实用类String类 构造String对象 字符串的并置 ...

  6. web页面性能

    一.资源压缩合并,减少HTTP请求 二.非核心代码异步加载 1.异步加载的方式 动态脚本加载 defer async 2.异步加载的区别 (1)defer是在HTML解析完之后才会执行,如果是多个,按 ...

  7. IIS发布ASP.NET Core

    安装IIS.程序和功能--程序卸载--启用或关闭Windows功能 安装.NET Core SDK和Runtime.下载网址 https://www.microsoft.com/net/downloa ...

  8. keil_v5生成.bin文件方法

    按ALT+F7,打开如下对话框 如上图,选择 After Build/ Rebuild下的Run#1,输入: C:/keil_v5/ARM/ARMCC/bin/fromelf.exe -bin -o ...

  9. 生信基础知识【04】GO和pathway分析

    非原创 参考资料: 一文掌握GO和pathway分析 - 生物信息学讨论版 -丁香园论坛http://www.dxy.cn/bbs/thread/34904124#34904124 GO富集 GO是G ...

  10. myeclipse破解软件(jar包分析)

    cracker.jar 第root层com 第1层crack 第二层me-->active 第4层ui 第5层find 第5层replace 第6层stream 第5层writer 第1层gen ...