Hands-On Functional Programming in Rust(译)前言

感谢您对Rust的函数编程感兴趣。 Rust是一种非常年轻的编程语言,对于函数式编程社区来说尤其陌生。尽管它的年代,该语言提供了丰富的实用和复杂的工具。

在本书中,我们将介绍一般的函数式编程原理以及它们如何特别适用于Rust。我们的目标是提供关于Rust的知识和观点,这将远远超出语言特征的变化。 Rust的发展速度如此之快,以至于在编写本书的过程中,我们引入了新的功能,因为它们变得可用且相关。我们希望装备读者为这个快速移动的环境生成代码,以便他们准备好在发布时最好地利用新功能。

这本书适合谁

本书适用于熟悉基本Rust功能或愿意在阅读时参考其他材料的开发人员。我们不会完全解释每个新的符号,库或语法形式,但我们会解释被认为更高级的库或可能难以阅读的语法。
类似地,将详细解释仅在介绍材料中简要解释的一些概念。

这本书涵盖了什么

  • 第1章,功能编程 - 比较,介绍功能在Rust中编程。在功能风格和对Rust普遍或有影响的其他范例之间进行比较。本章还作为本书稍后出现的主题的简要概述。
  • 第2章,功能控制流程,介绍了Rust控制流程结构,同时解释了它们与编程功能样式的相关性。函数式编程和Rust的表达式中心性质通过示例说明。尽可能限制,本章还开始使用程序表达式编程方式的正在进行的项目。
  • 第3章,功能数据结构,向读者介绍Rust中可用的各种高度表达的数据类型。值得注意的是,引入了枚举类型,这在函数式编程中具有特别重要的意义。该项目继续发展,以包含各种这些数据类型。
  • 第4章,泛型和多态,解释了数据参数化(泛型)和控制流参数化(多态)的概念。参数化及其与特征的自然交互减少了程序员的负担,但语法可能变得势不可挡。介绍了一些减少或减轻参数爆炸的方法。正在进行的项目再次发展,以包含这些功能。
  • 第5章,代码组织和应用程序体系结构,讨论了一些体系结构问题,建议和最佳实践。设计和管理软件项目的实现不是公式化的。没有项目是相同的,很少有相似的,因此没有工程程序可以捕捉软件开发的细微差别。在本章中,我们提供了最好的工具,特别是功能编程所能提供的最佳工具。
  • 第6章,可变性,所有权和纯函数,深入研究了Rust中一些更独特的特性。本章介绍了所有权和生命周期的概念,这些是学习Rust时常见的绊脚石。还引入了不变性和纯函数的功能概念,以帮助解开一些天真的Rust程序员在试图规避Rust中的所有权规则时可能产生的一些意大利面。
  • 第7章,设计模式,列出了可以放入单个章节的许多函数式编程作弊代码。仿函数和monad的概念用例子和一些随意的定义来解释。本章还简要介绍了功能反应式编程的风格,并使用它来构建快速而简洁的Web框架。
  • 第8章,实现并发,解释了如何同时执行多个操作。本章的大部分内容都用于阐明子进程,分叉进程和线程之间的差异以及相对的优缺点。然后假设Rust线程并发模型,并提供更多信息以阐明有关线程的特定于Rust的逻辑。在本章的最后,介绍了并发的actor模型,它是一个强大的并发模型,可以适应大多数情况和编程范例。
  • 第9章,性能,调试和元编程,包含了一些在Rust中编程的其他技巧。性能提示不是特别有用,而是主要关注语言特定的细节,一般建议或计算机科学的相关部分。调试介绍了许多关于如何防止错误的技巧。此外,通过示例解释了如何使用交互式调试器。元编程精确解释了Rust宏和过程宏的工作原理。这是Rust的一个很好的特性,但没有很好地记录,所以它可能很难接近。

为了充分利用这本书

1.我们假设您熟悉Rust文档的前10章(https://doc.rust lang.org/book/)中的概念。这些章节中的一些材料相当先进,因此我们也会在相关时解释。但是,预计会有语法知识和非常基本的功能。

2.克隆GitHub代码库并继续。调整示例并查看可以创建的效果。

3.保持好奇心。我们提到的一些关键字可以填充整本书中的独特内容。其中一些主题非常普遍,以至于它们都有不错的维基百科文章来解释和扩展这些概念。但是,知道关键字甚至需要知道要搜索的内容。

下载示例代码文件

您可以从www.packtpub.com上的帐户下载本书的示例代码文件。如果您在其他地方购买了本书,可以访问www.packtpub.com/support并注册以直接通过电子邮件将文件发送给您。

您可以按照以下步骤下载代码文件:
1.登录或注册www.packtpub.com

2.选择“支持”选项卡。

3.单击Code Downloads&Errata。

4.在“搜索”框中输入图书的名称,然后按照屏幕上的说明进行操作。

下载文件后,请确保使用最新版本解压缩或解压缩文件夹:

  • WinRAR/7-Zip for Windows
  • Zipeg/iZip/UnRarX for Mac
  • 7-Zip/PeaZip for Linux

该书的代码包也在GitHub上托管,网址为https://github.com/PacktPublishing/Hands-On-Functional-Programming-in-Rust。如果代码有更新,它将在现有的GitHub存储库上更新。

我们还提供了丰富的书籍和视频目录中的其他代码包,网址为https://github.com/PacktPublishing/。
去看一下!

使用的约定

本书中使用了许多文本约定。

CodeInText:表示文本,数据库表名,文件夹名,文件名,文件扩展名,路径名,虚拟URL,用户输入和Twitter句柄中的代码字。这是一个例子:“让我们首先定义物理模块的一些类型声明。”

代码块设置如下:

pub trait MotorController
{
fn init(&mut self, esp: ElevatorSpecification, est: ElevatorState);
fn poll(&mut self, est: ElevatorState, dst: u64) -> MotorInput;
}

任何命令行输入或输出都写成如下:

在这里插入图片描述

粗体:表示您在屏幕上看到的新术语,重要单词或单词。
在这里插入图片描述

保持联系

欢迎来自我们读者的反馈。

一般反馈:发送电子邮件至feedback@packtpub.com并在邮件主题中提及书名。如果您对本书的任何方面有疑问,请发送电子邮件至questions@packtpub.com。

勘误表:虽然我们已尽力确保内容的准确性,但确实会发生错误。如果您在本书中发现错误,我们将非常感谢您向我们报告此事。请访问www.packtpub.com/submit-errata,选择您的图书,点击勘误表提交表格链接,然后输入详细信息。

盗版:如果您在互联网上以任何形式发现我们作品的任何非法副本,如果您向我们提供位置地址或网站名称,我们将不胜感激。请通过copyright@packtpub.com与我们联系,并提供相关材料的链接。

如果您有兴趣成为作者:如果您有专业知识的主题,并且您有兴趣撰写或撰写图书,请访问authors.packtpub.com

评测

请留下评论。阅读并使用本书后,为什么不在您购买的网站上留下评论?潜在的读者可以查看并使用您的公正意见来做出购买决定,Packt可以了解您对我们产品的看法,我们的作者可以看到您对其图书的反馈。谢谢!

有关Packt的更多信息,请访问packtpub.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Rust语言是一种现代的、系统级别的编程语言,它的功能编程特性能够帮助开发者构建高效、安全且可维护的软件。 在Rust中,函数是一等公民。这意味着函数可以直接作为参数传递给其他函数,也可以作为返回值返回。这种特性为函数式编程风格提供了非常好的支持。函数式编程的一个重要思想是将程序划分为独立的函数,并通过将这些函数组合在一起来解决问题。在Rust中,我们可以使用闭包、高阶函数和map、filter等操作来实现函数式编程。 在Rust中,还提供了一些功能编程的工具,比如模式匹配。模式匹配是一种非常强大的工具,它允许我们根据不同的情况执行不同的逻辑。我们可以使用模式匹配来处理多种可能的情况,避免繁琐的if-else语句,提高代码的可读性和可维护性。 此外,Rust中的所有权和借用系统也是支持函数式编程的重要特性。所有权系统确保在编时检查内存安全,避免了常见的内存错误,如空指针引用和多线程竞争。借用系统允许我们以非常安全的方式共享数据,通过引用和生命周期来处理数据的所有权和访问。 通过结合Rust的功能编程特性,我们可以编写高效、可维护和安全的软件。无论是使用闭包进行抽象,还是使用模式匹配来处理复杂的逻辑,都能够为我们提供更好的工具。Rust语言的这些功能编程特性可以帮助开发者在实践中更好地理解和应用函数式编程的原则和模式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值