这本书的目的是教人学会递归的思考(think recursively, think different)
有三种方式阐述这一问题:自然语言、形式化数学(formal mathematics),或者一门程序语言;自然语言模糊、不精确而且罗唆,容易引起歧义;形式化数学正好想反,它只用少许的符号就能强有力的表示形式化的主意,但是不经过专门的训练很难掌握;所以这本书选择用程序语言讲述递归的概念。程序语言可以像形式化数学那样使用一套符号进行形式化表达,但不像形式化数学,这种表达是可以通过自己做实验来体会的
有三种方式阐述这一问题:自然语言、形式化数学(formal mathematics),或者一门程序语言;自然语言模糊、不精确而且罗唆,容易引起歧义;形式化数学正好想反,它只用少许的符号就能强有力的表示形式化的主意,但是不经过专门的训练很难掌握;所以这本书选择用程序语言讲述递归的概念。程序语言可以像形式化数学那样使用一套符号进行形式化表达,但不像形式化数学,这种表达是可以通过自己做实验来体会的
car([Head|_]) -> Head.
cdr([_|Tail]) -> Tail.
cons(S, L) when is_list(L) -> [S|L];
cons(S, L) -> throw(must_be_list).
本书旨在通过程序语言教授读者如何运用递归思维解决问题。书中对比了自然语言、形式化数学及程序语言在表述递归概念上的优劣,并选择了程序语言作为主要的教学工具。通过具体的程序示例解释了递归的基本原理。
1718

被折叠的 条评论
为什么被折叠?



