小小程序员
看你倒映着的容颜,天啊,这是一个以谜底为谜面的谜语。
---余秀华 《打开》
*~~~~~~~~~~~~~~~~~~*~~~~~~~~~~~~~~~*

这是一本天才写法的Lisp类入门读物。
首先,通篇是问答式教学,随时检查你的理解。遮住右边的答案问他们。7岁的Justin最最喜欢True or False的问题。9岁的Lily比较能够回答论述题,为什么或怎样等等。
第二,核心是先不给定义,对一个问题的理解是一章一章逐渐丰满的。从atom到S-expression再加number,从简单的recur function到*-function(recur with the car到包括cdr)。能用自己的话定义一个问题,理解了是不容易忘的。哪像我在研究生院暑假试图上Lisp的选修课,被TA三堂课灌下来,已经完全失去了兴趣,就记得和一堆parenthesis战斗。
第三,滚动叠加的内容,让读者一直往前走,往上累积。这是处理复杂问题最强大的方法。不管教的是Scheme,Lisp,还是别的,这对初学者掌握好的学习方法和思维方式是最重要的。函数调用这种词不必出现,但概念是完全可以教给小学生的。
Interesting presentation,比起前三点虽是小善,也值得一提。用食物列表来举例,peanut butter jelly sandwich,就让Justin念得津津有味,早上爬起来就要求上下一课的事情以前还没发生过呢。不为任何别的,就当陪孩子玩一个long game,也许两三周。:)

PS:我小时候赶上邓小平“计算机的普及要从娃娃抓起 ”,学的是BASIC。本来以为00后学编程可能从Java上手,呵呵,很高兴用这本趣味读物来启蒙了。想想Justin第一部上电影院看的片子是李安的Life of Pi,还是3D的。和我们那会儿露天影院看《画皮》可真是天差地别。:)
PPS: 找Scheme plugin for Eclipse还费了点劲,Scheme48调用external interpreter总报错。最后用的schemeway内置的Kawa interpreter(Java port)。
*~~~~~~~~~~~~~~~~~~*~~~~~~~~~~~~~~~*
中医的两个经典 ---《黄帝内经》和《伤寒杂病论》--- 很巧,也有这几大特性。
《黄帝内经 ‧素问》英译较准确的说法是Fundamental Questions。内经文字上是黄帝与岐伯的问答式教学,老师岐伯基本上都是赞黄帝,“悉乎哉问也”。到后面黄帝教雷公了,哇,挖苦起学生来老不客气。(一本最无稽的书说岐伯是外星人,教了中国人中医,哈哈哈。)
伤寒的文字表面不是问答,内涵一样是解决各式各样的临床问题。伤寒的特点是有明确的定义的少,各种”辩证“--套体征和脉诊的多。所谓学中医要悟性,倒不是参禅打坐,因为中医是理性的学问,根本就是pattern recognition.
学过中药方剂的人都知道,那就是长长短短的 list of atoms,有成方,又有加减,cons a list,rember (remove a member). 伤寒论可谓在众医书里整理得相当简洁实战,迄今为止还是要靠读者自行放到脑子里去重整。程序员的dynamic range再大,不常用的也不记,API什么的随时查就好了。你见过中医开方还查书的吗?常用的少,成方可是多少万首的。你见过西医开处方还查电脑的吗?FDA批准的处方药有一万多种。实际上医生只是一直优化脑子里记得的知识,遇到难的病,门诊后再去研究。可是优化不好的话,病人来一次可能就跑了,没有再研究的机会。
*~~~~~~~~~~~~~~~~~~*~~~~~~~~~~~~~~~*
“The 1-star reviews of The Little Schemer make funny reading! The reviewers are criticizing exactly what the book is good for ;-) ”
-Yin Wang