个人博客

把正在理解的事,写成可以回访的记录。

关于软件、系统设计与持续学习。文章由 Notion 写作并在这里发布。

目前已发布 302 篇文章。

筛选结果

找到的文章

28

当前筛选标签:#Haskell清除筛选

Get Programming with Haskell-19

正如类型类通常比面向对象编程中的接口更抽象一样,参数化类型在大多数语言中扮演着比泛型更大的角色。本课介绍了一个重要的参数化类型:Maybe。与表示值容器的 List 或 Map 不同,Maybe 是你将看到的许多表示值上下文的类型中的第一个。Maybe 类型表示可能缺失的值。在大多数语言中,缺失的值用 null 值表示。通过使用表示可能缺失的值的上下文,Maybe 类型允许你编写更安全的代码。由于 Maybe 类型的强大功能,与空值相关的错误会从 Haskell 程序中系统地移除。

Get Programming with Haskell-18

到目前为止,我们已经讨论了类型如何像数据一样被加和乘。 像函数一样,类型也可以接受参数。类型通过在其定义中使用类型变量来接受参数(因此它们的参数总是其他类型)。使用参数定义的类型称为参数化类型。参数化类型在 Haskell 中扮演着重要的角色,因为它们允许你定义可以与各种现有数据一起使用的通用数据结构。

Get Programming with Haskell-17

组合两个事物意味着什么?这里有一些例子:你可以连接两个列表得到一个新的列表,你可以合并两个文档得到一个新的文档,你可以混合两种颜色得到一种新的颜色。在许多编程语言中,每种组合类型的方法都有其自己独特的操作符或函数。与几乎每种编程语言都提供将类型转换为字符串的标准方法非常相似,Haskell 提供了一种将相同类型的实例组合在一起的标准方法。

Get Programming with Haskell-16

你将更仔细地研究一些我们已经介绍过的类型。你这样做是为了更多地了解 Haskell 类型的独特之处以及如何使用类型设计程序。到目前为止,你所看到的大多数类型都是代数数据类型。代数数据类型是通过组合其他类型而形成的任何类型。理解代数数据类型的关键在于准确地知道如何组合其他类型。幸运的是,只有两种方法。你可以使用“与”组合多种类型(例如,一个名字是一个 String 与另一个 String),或者你可以使用“或”组合类型(例如,一个 Bool 是一个 True 数据构造器 或一个 False 数据构造器)。通过使用“与”组合其他类型而形成的类型称为积类型(product types)。使用“或”组合而形成的类型称为和类型(sum types)。

Programming in types

Haskell 中的类型允许你将程序视为一系列的转换。你可以将转换视为一种更抽象的函数思考层面。在 Haskell 中解决问题时,你可以首先将它们视为一系列抽象的转换。

Get Programming with Haskell-15

每个人都喜欢能与朋友秘密通信的想法。在这个总结项目中,你将运用你对类型和类型类的知识,构建几个示例密码。密码(cipher)在密码学中是一种对信息进行编码的方法,使他人无法阅读。密码是密码学的基础,但它们本身也非常有趣、值得玩味。你将首先接触一个容易实现也容易破解的密码,然后进一步了解字符加密的基础知识,最后你将构建一个不可破解的密码!

主题索引

按主题浏览

展开全部标签