评分为7星的书籍

编程与类型系统

【关于本书】

本书旨在告诉你如何使用类型系统编写更好、更安全的代码。虽然大部分介绍类型系统的图书更加关注形式方面的讨论,但本书采用了偏向实用的做法。本书包含你在日常工作中可能遇到的许多示例、应用和场景。

【读者对象】

本书主要针对想要学习类型系统的工作原理以及使用类型系统来提高代码质量的程序员。你应该具备一些使用面向对象编程语言(如Java、C#、C++或JavaScript/TypeScript)的经验,还应该有一些软件设计经验。虽然本书的代码示例是基于TypeScript的,但是大部分内容是普遍适用的。事实上,本书的代码示例并非总是使用TypeScript特有的功能。在编写代码示例时,我尽可能让熟悉其他编程语言的程序员也容易理解它们。虽然本书会介绍各种技术来帮助你编写健壮的、可组合的、封装程度更好的代码,但是也假定了你知道为什么我们希望获得这些特性。此外,本书侧重类型系统的实际应用,因此涉及的数学理论较少,但是你应该熟悉基本的代数概念,如函数和集合等。

【本书的组织方式】

本书包含11章,涵盖类型编程的各个方面。

第1章介绍类型和类型系统,讨论它们为什么存在以及为什么有用。我们将讨论类型系统的类型,并解释类型强度、静态类型和动态类型。

第2章介绍大部分语言中都有的基本类型,以及在使用这些类型时需要注意的地方。常用的基本类型包括空类型、单元类型、布尔类型、数值类型、字符串类型、数组类型和引用类型。

第3章介绍组合,包括把类型组合起来定义新类型的各种方式,还介绍实现访问者设计模式的不同方式,并定义代数数据类型。

第4章讨论类型安全—如何使用类型来减少歧义以及防止错误。本章还介绍如何使用类型转换在代码中添加或移除类型信息。

第5章介绍函数类型,以及当我们获得了创建函数变量的能力后能够做些什么,还展示实现策略模式和状态机的不同方式,并介绍基本的map()、filter()和reduce()算法。

第6章以前一章为基础,展示函数类型的一些高级应用,包括简化的装饰器模式、可恢复的函数和异步函数。

第7章介绍子类型,并讨论类型兼容。我们会看到顶层类型和底层类型的应用,以及从子类型的角度看,和类型、集合和函数类型之间的关系。

第8章介绍面向对象编程的关键元素,以及什么时候使用每种元素,并讨论接口、继承、组合和混入。

第9章介绍泛型编程及其第一种应用—泛型数据结构。泛型数据结构把数据的布局与数据本身分隔开。迭代器支持遍历这些数据结构。

第10章继续介绍泛型编程,讨论泛型算法及迭代器的分类。泛型算法是能够在不同数据类型上重用的算法。迭代器用作数据结构和算法之间的接口,并且能够根据迭代器的能力启用不同的算法。

第11章介绍高阶类型、函子和单子的概念,以及如何使用它们,并为进一步学习提供一些建议。

本书中的各章以前面章节中的概念作为基础,故建议读者按顺序阅读。虽然如此,但是本书介绍的4大主题相对独立:前4章介绍基础知识;第5~6章介绍函数类型;第7~8章介绍子类型;第9~11章介绍泛型编程。

白马啸西风

吕梁三杰霍元龙、史仲俊、陈达海为抢夺一幅埋藏宝物的高昌迷宫图,带人与师妹上官虹及其夫白马李三交手。 由于寡不敌众,李三夫妇一直跑到回疆,仍没摆脱追踪,夫妻顽强抗战,手刃数名强敌,杀死史仲俊,双双战死。白马带着他们七岁的女儿李文秀跑入沙漠,遇见大风沙,吹至哈萨克人的居住区,被这里唯一的汉人叶老丈收养。霍元龙和陈达海找不到李文秀,对村中老弱病残妇的哈萨克人进行屠杀掠夺,引起哈萨克人的仇恨。李文秀自此后与叶老丈一同生活,并与哈萨克第一勇士苏鲁克的儿子苏普结为好友。 一次他们一同玩时遇见一头大狼,被二人合力杀死。苏鲁克因不在家时妻子被霍元龙等所害,从而仇恨所有的汉人,阻止苏普与李文秀来往;李文秀见苏普挨父亲的毒打,把他送给自己的狼皮送到哈萨克美丽的少女阿曼的门口,再也不见苏普。 随着时间的推移,李文秀变成了大姑娘,她偷偷观看苏普与人比武摔跤,却发现了阿曼对苏普的爱情,伤心而走,被一直在回疆寻找她的霍元龙手下之人发现。李文秀想起父母的仇恨,欲将他们带入戈壁之中,同归于尽,却巧遇隐藏在此的一指震江南华辉,在他的指导下,用毒针杀死围追的敌人,并帮助华辉挖出背上的毒针,拜他为师。两年时间,李文秀不时去华辉处学艺,已成为武林高手。 这日苏普与阿曼为避冰雪来到叶老丈家中,碰巧陈达海也来这里。一个询问儿时的伙伴,一个追查当年的汉族小姑娘,动起手来,苏普被陈达海所伤,李文秀此时女扮男装,打败陈达海,救出阿曼,还给苏昔。众人为追逃走的陈达海,来到迷宫,遇见躲在这里的华辉。他原是哈萨克人,本叫瓦耳拉齐,因在追求阿曼母亲时败给她的父亲,从而逃往中原,学得一身武功,并教了个汉人徒弟马家骏——也就是一直假扮叶老丈的人。华辉为了报复哈萨克人,曾让马家俊在井水中下毒,马家骏不忍心,先下手刺伤他,自此他就在此保护迷宫。如今师徒二人一场激战,双双伤重丧命。所谓迷宫之中的宝物,都是中原到处可见的纸、笔、围棋、七弦琴等等。 李文秀为关怀、照料自己的两位亲人的死而伤心,更为自己所爱的苏普爱别人而伤心,她只有骑着白马,回到中原,今后的路,还不知道向何方。 小说并不侧重武功的描写,似乎表达一种意念:人人追求的东西,往往并不一珍贵;而把握住自己所有的幸福,才是人世间难得的境界。这个让人唏嘘的故事,说穿了便觉其中无奈,正如李文秀所说:“你心里真正喜欢的,偏偏得不到,别人硬要给你的,就算好得不得了,我不喜欢,终究是不喜欢。”其实,与其说这是对高昌地图的感慨,不如说是对“情”字的总结。所爱不能爱,所求不能求,得到的却不是自己想要的,大多数人感情悲剧的根源就在于此。

高堡奇人

“科幻鬼才”菲利普•迪克成长于西方科技文明创造出的崭新辉煌的时代。彼时,人类进入了太空,登上了月球,成功制造出第一台工业用机器人……科技的蓬勃发展也催生出主流科幻小说对人类创造力的无比自信,克拉克、阿西莫夫和海因莱因撑起了西方科幻的黄金时代。可是,迪克却反其道而行之,他的主人公迷惘于亦真亦假的世界上,挣扎于文明的陷落中,充满了对生命的依恋和对人性的追求。 《高堡奇人》是菲利普•迪克代表作之一,架空历史最杰出的经典,雨果奖最佳长篇小说。小说以《易经》牵引情节,讲述了一种反转过来的“历史”——同盟国在二战中战败,美国被德国和日本分分割霸占,集权政治与东方哲学相互碰撞,探讨了正义与非正义,文化自卑与身份认同,以及法西斯独裁和种族歧视给人类社会造成的后果。著名科幻作家韩松长文导读。 2015年,亚马逊将这部小说改编成13集系列剧《高堡奇人》,并在2016年12月出完第二季,再次让这部小说成为话题爆点,引发观众和读者热议:如果同盟国输了二战,世界将变怎样? 小说以《易经》牵引情节,通过对不同阶层、不同身份的人物的穿插描述,讲述了一种反转过来的“历史”——同盟国在二战中战败,美国被德国和日本分割霸占,探讨了正义与非正义、文化自卑和身份认同,以及法西斯独裁和种族歧视给人类社会造成的后果。

鬼吹灯5:黄皮子坟

“人点烛,鬼吹灯”是传说中摸金派的不宣之秘,意为进入古墓之中先在东南角点燃一支蜡烛才能开棺,如果蜡烛熄灭,须速速退出,不可取一物。相传这是祖师爷所定的一条活人与死人的契约,千年传承,不得破。有谚为证:“发丘印,摸金符,搬山卸岭寻龙诀……窨沉棺,青铜椁,八字不硬莫近前。”故事以一本家传的秘书残卷为引,讲述三位当代摸金校尉,为解开部族消失的千古之谜,利用风水秘术,解读天下大山大川的脉搏,寻找一处处失落在大地深处的龙楼宝殿。毕竟那些龙形虎藏,揭天拔地、倒海翻江的举动,都迥异庸俗,在离奇诡异的地下世界中,历史的神秘面纱正一层层地被揭开…… 《鬼吹灯5黄皮子坟》:在大兴安岭加格达奇,有一处被称为千古之谜的鲜卑山洞,又名大鲜卑山“嘎仙洞”,洞内有北魏时期的摩崖石刻。山洞幽暗深邃、神秘莫测,隐藏在莽莽原始森林中。嘎仙洞不光是北魏鲜卑族发祥的圣地,也是鄂伦春族古老的福地。传说在远古洪荒的年代,嘎仙洞曾是东海下的“海眼”,是通往冥冥洞府的入口。关于此地的传说不性枚举,就像是白山黑水间似真似幻的海市蜃楼,但可以肯定的是,大鲜卑山嘎仙洞在历史的长河中,默默地见证了许多繁荣与消亡,带着无数的秘密留存至今。