緣起
看這本書的緣由,說(shuō)起來(lái)不好意思的振定。主要看scip看著頭痛,看到第二章的時(shí)候肉拓,做里面的習(xí)題做著頭疼腦熱的后频,
看看能否對(duì)scheme語(yǔ)言有一個(gè)簡(jiǎn)要的介紹就在網(wǎng)上看到此書,有人評(píng)論此書可以做為scip的基礎(chǔ)書暖途,我讀后感受
是最好在讀完scip的第一章和第二章中關(guān)于list的概念之后就可以閱讀了卑惜。畢竟這本書一上來(lái)就是各種
lambda表達(dá)式、以及scheme中內(nèi)置的函數(shù)驻售。盡管書的前言說(shuō)露久,此書適合無(wú)任何編程經(jīng)驗(yàn)的學(xué)習(xí)。覺(jué)得自己在校學(xué)習(xí)
果斷和國(guó)外的差距很大芋浮。
The Little Schemer is based on lecture notes from two-week "quickie" introduction
to Scheme for Students with no previous programming experience.
概述
本來(lái)想花一周的時(shí)間將此書看完,不厚也就200多頁(yè)壳快。但是期間加班比較嚴(yán)重纸巷,后面自己玩游戲也比較多,導(dǎo)致拖到
上周日才看完眶痰。此書以對(duì)話的形式介紹schemer瘤旨,書中主要是講解程序中遞歸的概念。在書的前言就作者就直接說(shuō):
The goal of this book is to teach the reader to think recursively.
其對(duì)話形式如下:
下面簡(jiǎn)單說(shuō)明一下這本書各章節(jié)內(nèi)容:
第一章竖伯、第二章存哲、第三章,簡(jiǎn)要介紹scheme中的基礎(chǔ)函數(shù)比如七婴,
連接函數(shù)cons祟偷、求第一個(gè)值函數(shù)car、后續(xù)值函數(shù)cdr打厘,以及判斷一個(gè)元素是否為原子修肠。第四章,數(shù)值計(jì)算户盯,加減乘除等嵌施。
第五章饲化,主要將前面兩章的函數(shù)進(jìn)行推廣,以*做通配符吗伤。
第六章吃靠,以value函數(shù)的定義講解求值的副作用。
第七章足淆,定義集合的概念以及集合之間的操作巢块。
第八章,將一些重復(fù)性的代碼進(jìn)行抽象缸浦,比如在第六章中的value函數(shù)的一個(gè)重構(gòu)夕冲。
第九章,看著頭痛裂逐,特別是在構(gòu)造length函數(shù)的過(guò)程歹鱼。雖然看了兩遍還沒(méi)有理解透,后面還需要重新讀一遍才行卜高。
此章主要以構(gòu)建length函數(shù)來(lái)講解圖靈不動(dòng)點(diǎn)問(wèn)題和Y combinator弥姻。第十章,如何一步一步構(gòu)造出一個(gè)簡(jiǎn)單的scheme編譯器掺涛。
Scheme編程經(jīng)驗(yàn)
作者在自問(wèn)自答的方式中介紹5條原則和10條告誡庭敦。這些都是通過(guò)一個(gè)個(gè)實(shí)例進(jìn)行論證說(shuō)明的。這些經(jīng)驗(yàn)性的概括十分簡(jiǎn)短薪缆,卻十分有用秧廉。
下面看看1條原則和1條告誡吧。更多可以訪問(wèn)此地.
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
.
如何閱讀此書
對(duì)于這本小書拣帽,如何閱讀疼电,作者在閱讀者指導(dǎo)中已經(jīng)說(shuō)得很明確。其實(shí)减拭,給出的建議也適合很多其他的讀本,下面摘抄如下蔽豺,分享給大家。:)
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.
相關(guān)的代碼在我的github中the little scheme note 倉(cāng)庫(kù)下拧粪,
使用在線scheme編譯器修陡。