Raku学习手册

Book description

不论你是一名程序员、系统管理员,还是Web黑客,如果刚开始学习Raku(以前叫作Perl 6),那么这本书正是你需要的。Raku是一种新语言,它是Perl语言的重生之作,可以用于几乎所有任务,从小的修修补补到完整的Web应用都适用。这本实用教程将带领你入门。

本书作者(同时也是《Mastering Perl》的作者)为这种新的编程语言提供了全面详尽的介绍。这本指南的每一章都包含一些练习,帮助你边学边用,实践新学习的知识。其他书可能只会单纯地教你如何用Raku编程,这本书则会让你成为一名真正的Raku程序员。

本书内容包括:

  • 数字、字符串、代码块和positional。
  • 文件、目录和输入/输出。
  • 关联、子例程、类和角色。
  • junction和set。
  • 正则表达式和内置文法。
  • 并发特性:promise、supply和channel。
  • 控制外部程序和其他高级特性。

Table of contents

  1. 封面
  2. 封底
  3. 扉页
  4. 版权页
  5. oreilly公司介绍
  6. 目录 (1/3)
  7. 目录 (2/3)
  8. 目录 (3/3)
  9. 前言
    1. Perl 6背后的故事
    2. 预备知识
    3. 获得Rakudo
    4. 如何使用这本书
    5. 寻求帮助
    6. 本书使用约定
    7. 使用代码示例
    8. O’Reilly在线学习平台(O’ReillyOnline Learning)
    9. 意见和疑问
    10. 致谢
  10. 第1章 概论
    1. 1.1 为什么使用Perl 6?
    2. 1.2 REPL入门
    3. 1.3 阅读文档
    4. 1.4 基本语法
      1. 1.4.1 项
      2. 1.4.2 操作符和表达式
      3. 1.4.3 语句
      4. 1.4.4 代码块
      5. 1.4.5 注释
      6. 1.4.6 空白隐身
      7. 1.4.7 对象和类
    5. 1.5 变量
      1. 1.5.1 简单输出
      2. 1.5.2 词法作用域
      3. 1.5.3 预定义变量
    6. 1.6 建立和运行一个程序
    7. 1.7 小结
  11. 第2章 猜数
    1. 2.1 绑定和赋值
    2. 2.2 MAIN程序
      1. 2.2.1 程序参数
      2. 2.2.2 提示输入值
    3. 2.3 字面数
      1. 格式化数字
    4. 2.4 数值操作
    5. 2.5 条件执行
      1. 2.5.1 布尔值
      2. 2.5.2 比较
      3. 2.5.3 条件分支
    6. 2.6 汇总
    7. 2.7 小结
  12. 第3章 数字
    1. 3.1 数值类型
    2. 3.2 整数
      1. 3.2.1 类型约束
      2. 3.2.2 智能匹配
    3. 3.3 有理数
    4. 3.4 虚数和复数
    5. 3.5 非常小和非常大的数
    6. 3.6 数值层次结构
    7. 3.7 小结
  13. 第4章 字符串
    1. 4.1 字面量引号
    2. 4.2 转义字符串
      1. 4.2.1 引号副词
      2. 4.2.2 字符串操作符和方法
      3. 4.2.3 查看字符串
      4. 4.2.4 标准字素
      5. 4.2.5 字符串比较
      6. 4.2.6 提示输入
      7. 4.2.7 数字到字符串转换
      8. 4.2.8 字符串到数字转换
    3. 4.3 插值字符串
    4. 4.4 Here Doc
    5. 4.5 Shell字符串
      1. Shell安全
    6. 4.6 更酷的引号
    7. 4.7 小结
  14. 第5章 基本代码块
    1. 5.1 代码块
      1. 5.1.1 词法作用域
      2. 5.1.2 控制结构
      3. 5.1.3 Phaser
      4. 5.1.4 存储代码块
      5. 5.1.5 有参数的代码块
    2. 5.2 简单子例程
      1. 命名子例程
    3. 5.3 Whatever代码
      1. 子集
    4. 5.4 小结
  15. 第6章 Positional
    1. 6.1 构造列表
      1. 迭代所有元素
    2. 6.2 范围
      1. @强制转换操作符
    3. 6.3 序列
      1. 6.3.1 无限惰性列表
      2. 6.3.2 收集值
    4. 6.4 单元素访问
      1. 6.4.1 改变一个元素
      2. 6.4.2 多元素访问
    5. 6.5 数组
      1. 6.5.1 构造数组
      2. 6.5.2 插值数组
      3. 6.5.3 数组操作
      4. 6.5.4 列表的列表
      5. 6.5.5 扁平列表
      6. 6.5.6 有趣的子列表
    6. 6.6 组合列表
      1. 6.6.1 Zip操作符Z
      2. 6.6.2 交叉操作符X
      3. 6.6.3 超操作符
      4. 6.6.4 归约操作符
    7. 6.7 过滤列表
    8. 6.8 转换列表
    9. 6.9 列表排序
    10. 6.10 基于多重比较的排序
    11. 6.11 小结
  16. 第7章 出现问题时
    1. 7.1 异常
      1. 7.1.1 捕获异常
      2. 7.1.2 Backtrace
      3. 7.1.3 重新抛出错误
      4. 7.1.4 抛出你自己的异常
      5. 7.1.5 定义你自己的异常类型
    2. 7.2 Failure
    3. 7.3 警告
    4. 7.4 关于异常的箴言
    5. 7.5 小结
  17. 第8章 文件和目录、输入和输出
    1. 8.1 文件路径
      1. 8.1.1 文件测试操作符
      2. 8.1.2 文件元数据
      3. 8.1.3 链接文件和解除链接
      4. 8.1.4 重命名和复制文件
    2. 8.2 管理目录
      1. 8.2.1 目录清单
      2. 8.2.2 创建目录
      3. 8.2.3 删除目录
    3. 8.3 格式化输出
      1. 常见格式化任务
    4. 8.4 标准文件句柄
      1. 8.4.1 标准输出
      2. 8.4.2 标准错误
      3. 8.4.3 标准输入
    5. 8.5 读取输入
      1. 8.5.1 读取行
      2. 8.5.2 读取文件
    6. 8.6 写输出
      1. 打开一个要写的文件
    7. 8.7 二进制文件
      1. 8.7.1 移动
      2. 8.7.2 写二进制文件
    8. 8.8 小结
  18. 第9章 关联
    1. 9.1 Pair
      1. 9.1.1 副词
      2. 9.1.2 修改Pair
    2. 9.2 Map
      1. 9.2.1 检查键
      2. 9.2.2 从Positional创建Map
      3. 9.2.3 检查可取值
    3. 9.3 Hash
      1. 用散列累加
    4. 9.4 多级散列
    5. 9.5 小结
  19. 第10章 使用模块
    1. 10.1 安装模块
    2. 10.2 加载模块
      1. 10.2.1 查找模块
      2. 10.2.2 词法作用
      3. 10.2.3 运行时加载模块
    3. 10.3 从Web获取数据
    4. 10.4 Perl 6中运行Perl 5
    5. 10.5 小结
  20. 第11章 子例程
    1. 11.1 一个基本子例程
      1. 11.1.1 额外参数
      2. 11.1.2 显式返回
    2. 11.2 递归
      1. 使用迭代而不是递归
    3. 11.3 子例程存储在库中
      1. 导出子例程
    4. 11.4 位置参数
      1. 11.4.1 Slurpy参数
      2. 11.4.2 二者兼得
      3. 11.4.3 结合Slurpy
      4. 11.4.4 可选和默认参数
      5. 11.4.5 参数特性
      6. 11.4.6 参数约束
    5. 11.5 同名但签名不同
      1. 11.5.1 字面量值参数
      2. 11.5.2 实参个数
      3. 11.5.3 参数类型
    6. 11.6 命名参数
      1. 11.6.1 必要命名参数
      2. 11.6.2 自动的命名参数
      3. 11.6.3 混合参数
    7. 11.7 返回类型
    8. 11.8 小结
  21. 第12章 类
    1. 12.1 第一个类
    2. 12.2 定义方法
      1. 12.2.1 私有方法
      2. 12.2.2 定义子例程
    3. 12.3 对象
      1. 12.3.1 私有属性
      2. 12.3.2 公共属性
    4. 12.4 multi方法
    5. 12.5 继承类型
      1. 12.5.1 检查继承
      2. 12.5.2 Stub方法
    6. 12.6 控制对象创建
      1. 12.6.1 构建对象
      2. 12.6.2 调整对象
    7. 12.7 私有类
    8. 12.8 小结
  22. 第13章 角色
    1. 13.1 为类增加行为
      1. 13.1.1 应用多个角色
    2. 13.2 角色中的方法
    3. 13.3 消除角色冲突
    4. 13.4 匿名角色
    5. 13.5 小结
  23. 第14章 Junction和Set
    1. 14.1 Junction
      1. 14.1.1 any
      2. 14.1.2 all
      3. 14.1.3 one
      4. 14.1.4 none
      5. 14.1.5 一些关于Junction的技巧
    2. 14.2 Set
      1. Set操作
    3. 14.3 小结
  24. 第15章 正则表达式
    1. 15.1 匹配操作符
      1. 15.1.1 匹配操作符语法
      2. 15.1.2 成功匹配
      3. 15.1.3 定义模式
      4. 15.1.4 预定义模式
    2. 15.2 匹配非字面量字符
      1. 15.2.1 匹配任意字符
      2. 15.2.2 字符的匹配类型
      3. 15.2.3 用户自定义字符类
    3. 15.3 匹配副词
      1. 15.3.1 匹配大小写
      2. 15.3.2 忽略标记
      3. 15.3.3 全局匹配
    4. 15.4 关于模式使用
      1. 替换
    5. 15.5 小结
  25. 第16章 更酷的正则表达式
    1. 16.1 量词
      1. 16.1.1 0或多个
      2. 16.1.2 贪婪性
      3. 16.1.3 0或1个
      4. 16.1.4 最小和最大
    2. 16.2 控制量词
      1. 关闭回溯
    3. 16.3 捕获
      1. 16.3.1 命名捕获
      2. 16.3.2 捕获树
      3. 16.3.3 反向引用
    4. 16.4 包围符和分隔符
    5. 16.5 断言
      1. 16.5.1 锚
      2. 16.5.2 条件
      3. 16.5.3 代码断言
    6. 16.6 候选项
      1. 16.6.1 第一个匹配
      2. 16.6.2 最长Token匹配
    7. 16.7 小结
  26. 第17章 文法
    1. 17.1 一个简单的文法
    2. 17.2 多个规则
    3. 17.3 调试文法
      1. 17.3.1 Grammar::Tracer
      2. 17.3.2 Grammar::Debugger
    4. 17.4 一个简单的动作类
      1. 17.4.1 创建一个抽象语法树
    5. 17.5 避免回溯
    6. 17.6 解析JSON
    7. 17.7 解析CSV
      1. 17.7.1 调整文法
      2. 17.7.2 文法中使用角色
    8. 17.8 小结
  27. 第18章 Supply、Channel和Promise
    1. 18.1 Supply
      1. 18.1.1 多个Tap
      2. 18.1.2 现场Supply
    2. 18.2 Channel
    3. 18.3 Promise
      1. 18.3.1 等待Promise
      2. 18.3.2 等待多个Promise
      3. 18.3.3 管理自己的Promise
      4. 18.3.4 Promise Junction
    4. 18.4 响应式编程
      1. 在后台响应
    5. 18.5 小结
  28. 第19章 控制其他程序
    1. 19.1 快速简便
      1. 19.1.1 加引号的命令
      2. 19.1.2 更安全的命令
      3. 19.1.3 写到Proc
    2. 19.2 Proc
    3. 19.3 异步控制
    4. 19.4 小结
  29. 第20章 高级主题
    1. 20.1 单行程序
    2. 20.2 声明符代码块注释
    3. 20.3 Feed操作符
    4. 20.4 分解签名
    5. 20.5 定义你自己的操作符
    6. 20.6 Perl 5模式
    7. 20.7 异型数组
    8. 20.8 有类型的容器
    9. 20.9 NativeCall
    10. 20.10 with主题
  30. 第21章 结束语
  31. 术语表 (1/3)
  32. 术语表 (2/3)
  33. 术语表 (3/3)
  34. 附录 练习答案
    1. 前言练习答案
    2. 第1章练习答案
    3. 第2章练习答案 (1/2)
    4. 第2章练习答案 (2/2)
    5. 第3章练习答案
    6. 第4章练习答案
    7. 第5章练习答案
    8. 第6章练习答案 (1/2)
    9. 第6章练习答案 (2/2)
    10. 第7章练习答案
    11. 第8章练习答案 (1/2)
    12. 第8章练习答案 (2/2)
    13. 第9章练习答案 (1/2)
    14. 第9章练习答案 (2/2)
    15. 第10章练习答案
    16. 第11章练习答案
    17. 第12章练习答案
    18. 第13章练习答案
    19. 第14章练习答案
    20. 第15章练习答案
    21. 第16章练习答案 (1/2)
    22. 第16章练习答案 (2/2)
    23. 第17章练习答案
    24. 第18章练习答案
    25. 第19章练习答案
  35. 作者介绍
  36. 封面介绍

Product information

  • Title: Raku学习手册
  • Author(s): brian d foy
  • Release date: October 2020
  • Publisher(s): China Electric Power Press Ltd.
  • ISBN: 9787519848002

You might also like

book

Python设计模式(第2版)

by Posts & Telecom Press, Chetan Giridhar

利用Python设计模式解决软件架构和设计中的实际问题 Key Features Python软件基金会董事会成员Anand B Pillai倾情作序 本书全面揭示有关设计模式的内容 结合Python语言进行示例化的解析 Book Description 随着人们对优化软件架构和设计的关注度的不断提高,软件架构师也愈发认识到在架构和设计层面,对象创建、代码结构和对象之间的交互优化的重要性。因为这样不仅能够降低软件的维护成本,而且还能确保代码的可重用性,提高代码适应变化的能力。在上一版成功的基础上,本书的第2版将利用Python 3.5来帮助读者实现现实世界的各种场景。 本书首先从Python的角度对各种设计模式进行了介绍。然后,逐步带领读者深入学习单例模式、工厂模式和门面模式。之后,还介绍了如何使用代理模式来控制对象访问。此外,本书还讲解了观察者模式、命令模式和复合模式。通过阅读本书,读者能够进一步提高其在软件架构、设计和开发方面的专业技能。 本书的目标读者 本书适用于软件架构师以及热衷于软件设计的Python应用开发人员。对于具有初级Python编程技能并且喜欢使用Python 3.5的工程师来说,阅读本书将更加轻松。 …

book

R编程学习指南

by Posts & Telecom Press, Kun Ren

高效数据分析师实用指南 Key Features 通过简单且实践性强的方式,让读者逐步建立对R语言的理解 通过实际操作实例,让读者亲身体验强大的R工具,并总结R的使用方法 Book Description R 是一个开源、跨平台的科学计算和统计分析软件包,它提供了丰富多样的统计功能和强大的数据分析功能。随着数据科学的快速发展,R已经成为数据分析领域非常流行的语言。 本书通过15章内容,向读者全面讲解了R的基础知识和编程技巧。本书不仅介绍了R的安装、基本对象、工作空间管理、基本表达式、基本对象操作、字符串的使用等基础内容,还对数据处理、R的内部机制、元编程、面向对象编程、数据库操作、数据操作进行了讲解,同时也涉及高性能计算、网页爬虫和效率提升等重要主题。 本书面向数据领域的从业人员,尤其适合想要通过学习R编程及相关工具提升数据处理效率的读者阅读,也适合计算机或统计相关专业的学生参考使用。通过阅读本书,读者将全面掌握R的相关特性及其在数据处理和分析方面的应用,极大地提升自己的专业技能。 What you will learn 探索 …

book

Hadoop实际解决方案手册

by Posts & Telecom Press, JONATHAN OWENS, Lentz Jon, Femiano Brian

快速解决诸多Hadoop相关技术问题的实用技术手册 Key Features 文字简洁,易于读者理解 精挑细选,关注最重要的任务和问题 细心组织,提供高效的问题解决方案 讲解透彻,清晰解读每个操作步骤 举一反三,将解决方案应用到其他场景中 Book Description 这是一本 Hadoop 实用手册,主要针对实际问题给出相应的解决方案。本书特色是以实践结合理论分析,手把手教读者如何操作,并且对每个操作都做详细的解释,对一些重要的知识点也做了必要的拓展。 全书共包括3个部分,第一部分为基础篇,主要介绍Hadoop数据导入导出、HDFS 的概述、Pig 与 …

book

Python数据分析

by Posts & Telecom Press, Ivan Idris

学习流行的开源Python模块,掌握强大的数据分析技术 Key Features 最实用的Python开源模块的大集合; 简单易懂、示例丰富的数据分析教程; 掌握数据可视化、机器学习等高端主题; 新手变身数据分析专家的最佳读本; Book Description 作为一种高级程序设计语言,Python凭借其简洁、易读及可扩展性日渐成为程序设计领域备受推崇的语言。同时,Python语言的数据分析功能也逐渐为大众所认可。 本书是一本介绍如何用Python进行数据分析的学习指南。全书共12章,从Python程序库入门、NumPy数组、matplotlib和pandas开始,陆续介绍了数据加工、数据处理和数据可视化等内容。同时,本书还介绍了信号处理、数据库、文本分析、机器学习、互操作性和性能优化等高级主题。在本书的最后,还采用3个附录的形式为读者补充了一些重要概念、常用函数以及在线资源等重要内容。 本书示例丰富、简单易懂,非常适合对Python语言感兴趣或者想要使用Python语言进行数据分析的读者参考阅读。 What you will learn …