美文网首页技术
《the little schemer》读书感悟

《the little schemer》读书感悟

作者: 云枫随笔 | 来源:发表于2017-05-23 00:37 被阅读61次

缘起

看这本书的缘由,说起来不好意思的。主要看scip看着头痛,看到第二章的时候,做里面的习题做着头疼脑热的,
看看能否对scheme语言有一个简要的介绍就在网上看到此书,有人评论此书可以做为scip的基础书,我读后感受
是最好在读完scip的第一章和第二章中关于list的概念之后就可以阅读了。毕竟这本书一上来就是各种
lambda表达式、以及scheme中内置的函数。尽管书的前言说,此书适合无任何编程经验的学习。觉得自己在校学习
果断和国外的差距很大。

The Little Schemer is based on lecture notes from two-week "quickie" introduction
to Scheme for Students with no previous programming experience.

概述

本来想花一周的时间将此书看完,不厚也就200多页。但是期间加班比较严重,后面自己玩游戏也比较多,导致拖到
上周日才看完。此书以对话的形式介绍schemer,书中主要是讲解程序中递归的概念。在书的前言就作者就直接说:

The goal of this book is to teach the reader to think recursively.

其对话形式如下:

简单示例

下面简单说明一下这本书各章节内容:

  • 第一章、第二章、第三章,简要介绍scheme中的基础函数比如,
    连接函数cons、求第一个值函数car、后续值函数cdr,以及判断一个元素是否为原子。

  • 第四章,数值计算,加减乘除等。

  • 第五章,主要将前面两章的函数进行推广,以*做通配符。

  • 第六章,以value函数的定义讲解求值的副作用。

  • 第七章,定义集合的概念以及集合之间的操作。

  • 第八章,将一些重复性的代码进行抽象,比如在第六章中的value函数的一个重构。

  • 第九章,看着头痛,特别是在构造length函数的过程。虽然看了两遍还没有理解透,后面还需要重新读一遍才行。
    此章主要以构建length函数来讲解图灵不动点问题和Y combinator。

  • 第十章,如何一步一步构造出一个简单的scheme编译器。

Scheme编程经验

作者在自问自答的方式中介绍5条原则和10条告诫。这些都是通过一个个实例进行论证说明的。这些经验性的概括十分简短,却十分有用。
下面看看1条原则和1条告诫吧。更多可以访问此地.

The Law of Car

The primitive car is defined only for non-empty lists.

The First Commandment

When recurring on a list of atoms, lat, ask two questions about it: (null? lat) and else.
When recurring on a number, n, ask two questions about it:(zero? n) and else;
When recurring on a list of S-expressions, l, ask three questions about it:(null? l),
(atom? (car l)), and else.

如何阅读此书

对于这本小书,如何阅读,作者在阅读者指导中已经说得很明确。其实,给出的建议也适合很多其他的读本,下面摘抄如下,分享给大家。:)

Do not rush through this book. Read carefully; valuable hints are scattered throughout the text.
Do not read the book is fewer than three setting. Read systematically.

相关的代码在我的github中the little scheme note 仓库下,
使用在线scheme编译器

相关文章

网友评论

    本文标题:《the little schemer》读书感悟

    本文链接:https://www.haomeiwen.com/subject/ncfwxxtx.html