Haskell函数式编程入门(第2版)第2卷 2
معرفی کتاب «Haskell函数式编程入门(第2版)第2卷 2» نوشتهٔ 张淞 刘长生، منتشرشده توسط نشر 人民邮电出版社 در سال 2018. این کتاب در فرمت pdf، زبان zh ارائه شده است. «Haskell函数式编程入门(第2版)第2卷 2» در دستهٔ بدون دستهبندی قرار دارد.
IV 进阶篇 15 惰性求值简介 15.1 演算简介 15.2 Bottom 15.3 表达式形态和thunk 15.3.1 弱首范式与范式 15.4 thunk与严格求值 15.5 求值策略 15.5.1 传值调用 15.5.2 传名调用 15.5.3 常序求值 15.6 惰性求值 15.7 严格模式匹配与惰性模式匹配 15.8 默认严格求值的扩展* 16 深入Haskell的类型系统 16.1 值、类型、类型类、Kind 16.2 Haskell的类型推断 16.3 高秩类型 16.3.1 函数的元与阶 16.3.2 类型的秩 16.3.3 ST monad 16.4 Kind多态 16.5 可类型化 16.5.1 Typeable的大致实现 16.5.2 代理类型 16.5.3 GHC中可类型化类型类的实现 16.5.4 动态类型 16.5.5 不安全的强制类型转换 16.6 一阶多态类型的可类型化* 16.6.1 无重载类型的可类型化 16.6.2 GHC中类型类的大致实现 16.6.3 重载类型的可类型化* 16.7 单一同态限定 16.8 类型家族 16.8.1 类型的函数依赖与关联类型 16.8.2 类型上的自然数计算 16.8.3 简易的依赖类型 16.8.4 GHC访问器函数重载的大致实现 16.8.5 GHC中的访问器函数的重载 16.8.6 单射的类型家族 16.9 有重叠的类型类实例的实现 16.9.1 Haskell的Show类型类 16.9.2 多参数类型类的实例的重合 16.9.3 类型的等价类划分 16.10 安全的类型转换 16.10.1 安全的类型转换与类型角色 16.10.2 coerce的使用 16.11 GHC的原始类型与函数* 16.11.1 ghc-prim库 16.11.2 运行时类型表示的多态* 17 通用编程 17.1 代数数据类型通用编程 17.1.1 类型类自动导出的简易实现 17.1.2 GHC中代数数据类型通用编程的实现 17.1.3 实现通用的Show类 17.1.4 NFData的实现 17.1.5 通用编程的应用 17.1.6 生成Generic类型类实例可能遇到的问题 17.2 摒弃样板代码 17.2.1 纯函数变换 17.2.2 信息查询 17.2.3 Monad变换 17.2.4 复合多种类型的变换与查询 17.2.5 gfold* 17.2.6 反射 18 模板元编程 18.1 元编程的用途 18.1.1 Haskell中元编程基本用法 18.1.2 使用元编程 18.1.3 类型构造器参数数量类型类实例的实现 18.1.4 zipN函数 18.1.5 元编程代码展开的限定 18.1.6 自上而下的类型类实例导出 18.1.7 aeson库中的元编程 18.2 准引用的应用 18.2.1 字面原生字符串 18.2.2 可应用函子的do表达式 18.2.3 定义引用子 18.2.4 值提供器 18.2.5 类型提供器 19 宏 19.1 简单的文本替换 19.2 GHC为条件编译提供的宏 19.3 Cabal提供的宏 V 工程篇 20 测试与类型驱动开发 20.1 正确性测试 20.1.1 单元测试 20.1.2 快速随机测试 20.1.3 穷举测试 20.1.4 断言 20.1.5 完全性模式匹配检查 20.2 错误分析 20.2.1 Debug.Trace模块简介 20.2.2 Haskell的函数调用栈 20.3 性能分析 20.4 类型驱动编程 20.4.1 类型签名丢失报警 20.4.2 有类型的空白 20.4.3 部分类型推断 21 并行、并发、异步以及分布式计算 21.1 确定性的并发 21.2 软件事务内存 21.2.1 软件事务内存简介 21.2.2 软件事务内存的使用 21.2.3 哲学家就餐问题 21.2.4 圣诞老人问题 21.3 异步并发库简介 21.4 Cloud Haskell 分布式编程 21.4.1 体系结构 21.4.2 并发模型 21.4.3 案列开发:Ping-Pong 21.4.4 进程层接口 21.4.5 上层组件 22 Haskell开发工具简介 22.1 Cabal 22.1.1 什么是Cabal? 22.1.2 Stackage与stack 22.2 ghc-pkg 22.3 hlint与hoogle 22.4 .ghci的配置 22.5 提高Haskell程序性能的一些建议 22.5.1 用专有的库来完成工作 22.5.2 编译器注示(pragma) 22.5.3 SPECIALIZE 22.5.4 RULE VI 理论篇 23 Arrow简介 23.1 Arrow类型类的定义 23.2 (->)与信号函数实现Arrow类型类 23.2.1 (->)实现Arrow 23.2.2 信号函数实现Arrow类型类 23.3 ArrowApply类型类 23.4 ArrowChoice类型类 23.5 ArrowLoop与ArrowCircuit类型类 23.6 处理时序电路信号 23.7 ArrowZero与ArrowPlus类型类 24 函数反应式编程简介 24.1 传统的函数反应式编程 24.2 一元函数反应式编程 24.3 Yampa 25 Haskell与范畴论 25.1 范畴论基本概念 25.1.1 范畴的定义 25.1.2 范畴的举例 25.1.3 Haskell中的范畴 25.1.4 态射的性质 25.1.5 初始对象与终极对象 25.2 函子与自然变换 25.2.1 函子 25.2.2 自然变换 25.2.3 类型类限定范畴 25.2.4 类型相等范畴 25.2.5 Hom函子间的自然变换与米田引理 25.2.6 自函子与自函子范畴 25.3 单子 25.3.1 单位半群和单子 25.3.2 Kleisli范畴与单子 25.4 Arrow跟Applicative和Monad的关系 25.4.1 Arrow与Applicative的关系 25.4.2 Arrow与Monad的关系 25.5 单子间的态射 25.5.1 初始对象与终极对象 25.5.2 单子范畴的态射 25.6 范畴的代数结构 25.6.1 范畴上的积与和 25.6.2 范畴上的极限和余极限 25.7 伴随函子 25.7.1 伴随函子 25.7.2 柯里化和反柯里化的伴随 25.7.3 积与和的伴随 25.7.4 极限和余极限的伴随 25.7.5 从伴随函子中得到单子 25.8 F-代数和F-余代数 25.8.1 F-代数 25.8.2 F-余代数 25.9 自由结构 25.9.1 自由结构的定义 25.9.2 自由幺半群 25.9.3 自由单子 25.9.4 自由可应用函子 25.9.5 自由的意义 25.10 范畴上的幺半群 25.10.1 幺半范畴 25.10.2 幺半范畴上的幺半群 25.10.3 单子是自函子范畴上的幺半群 25.10.4 可应用函子是自函子范畴上的幺半群 25.10.5 幺半函子(Monoidal Functor) 25.10.6 闭函子(Closed Functor) 25.10.7 Arrow是Profunctor范畴上的幺半群 附录 参考文献 本书是一本讲解Haskell这门纯函数式编程语言的书,同时也是一本通过Haskell来讲解函数式编程的方法与思想的书.全书共分三个部分.第一部分介绍函数式编程在解决数学与算法问题的精简与直观的特色;第二部分介绍一些略微深入的Haskell内容,包括函子,Monoid,IO与Monad转换器等;最后一部分则涉及快速测试,惰性求值和并行编程等主题
دانلود کتاب Haskell函数式编程入门(第2版)第2卷 2