采用100个函数在一种数据结构上操作,远远优于用十个函数在十个数据结构上操作。
计算机科学并不是一种科学,而且其重要性也与计算机本身并无太大关系。计算机革命是有关我们如何去思考的方式,以及我们如何去表达自己的思考的一个革命。
数学为精确处理“是什么”提供了一种框架,而计算则为精确处理“怎么做”提供了一种框架。
构造过程抽象
心智的活动,除了尽力产生各种简单的认识之外,主要体现在如下三个方面:1)将若干简单认识组合为一个复合认识,由此产生各种复杂的认识。2)将两个认识放在一起对照,不管它们如何简单或复杂,由此得到有关它们的相互关系的认识。3)将有关认识与那些在实际中和它们同在的所有其他认识隔离开,这就是抽象。
LISP的名字来自表处理(list processing),这一语言最重要的特点是:计算过程本身可以作为Lisp的数据来表示和操作(注解:我认为这句话的意思就是函数式编程,也就是说函数成为和其他对象一样的一等公民,类似现在最流行的javascript)
表达式
(define pi 3.14159)
(define radius 10)
(* pi (* radius radius))
(* (+ 2 (* 4 6))
(+ 3 5 7))
定义函数
下面定义一个平方函数
(define (square x) (* x x))
(square 21)
在定义两个数的平方和函数
(define (sum_of_squares x y) (+ (square x) (square y)))
(sum_of_squares 3 4)
先求值参数而后应用的应用序求值方式
条件表达式和谓词
(define (abs x)
(cond ((> x 0) x )
((= x 0) 0 )
((< x 0) (- x))))
(abs -1)
如果只有两种条件的话,可以使用if
(define (abs x)
(if (< x 0) (- x) x))
and or not
(and (> x 5) (< x 10))
网友评论