最美丽的编程语言Scheme——复合过程

Scheme的标识符除了下划线以外,还可以包含“减号”。

 

我们在上一讲谈到了如何用define来定义变量,这一讲我们将介绍如何用define来定义过程。

用define定义过程也很简单。我们可以先举个简单的例子:

(define (incr x) (+ x 1)) ;Value: incr (incr 1) ;Value: 2 

我们在上述代码中定义了一个函数incr,它带有一个参数,并且返回参数+1的值。

这里与变量定义的不同之处在于,定义过程时,我们用一个括号表达式。然后,你可以定义多个形参。

最后,在右边,再用一个括号表达式来描述这个过程针对参数做何种操作。

 

我们下面再举一个更复杂些的例子:

(define (square x) (* x x)) ;Value square (define (sum x y) (+ x y)) ;Value sum (sum (square 10) (square 100)) ;Value: 10100 

在上述代码例子中,我们首先定义了一个函数square,它接受一个参数,并且返回该参数的平方。

第二个函数定义了一个求和函数sum,这个函数带有两个参数,最后返回参数的和。

最后计算的是(10 * 10) + (100 * 100)的值。

 

最后再举个例子:

(define (even a) (* a 2)) ;Value: even (define (odd a) (+ (even a) 1)) ;Value: odd (define (inter a) (+ (even a) (odd a))) ;Value: inter (inter 3) ;Value 13 (inter 4) ;Value: 17 

我们定义了一个函数even,它将参数值乘以2;定义了一个odd,它将参数值乘以2之后又加1。

然后inter是将参数经过even和odd处理后再进行相加。

 

你可能感兴趣的:(编程,Scheme,语言)