2-最美丽的编程语言Scheme——复合过程
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
我们下面再举一个更复杂些的例子:
[php]view plaincopyprint?
1.(define (square x) (* x x))
2.;Value square
3.(define (sum x y) (+ x y))
4.;Value sum
5.(sum (square 10) (square 100))
8.;Value 13
9.(inter 4)
10.;Value: 17
我们定义了一个函数even,它将参数值乘以2;定义了一个odd,它将参数值乘以2之后又加1。
然后inter是将参数经过even和odd处理后再进行相加。
分享到:
上一篇:最美丽的编程语言Scheme——基本表达式
下一篇:最美丽的编程语言Scheme——条件表达式和谓词
6.;Value: 10100
在上述代码例子中,我们首先定义了一个函数square,它接受一个参数,并且返回该参数的平方。
第二个函数定义了一个求和函数sum,这个函数带有两个参数,最后返回参数的和。
最后计算的是(10 * 10) + (100 * 100)的值。
最后再举个例子:
[php]view plaincopyprint?
最美丽的编程语言Scheme——复合过程
Scheme的标识符除了下划线以外,还可以包含“减号”。
我们在上一讲谈到了如何用define来定义变量,这一讲我们将介绍如何用define来定义过程。
用define定义过程也很简单。我们可以先举个简单的例子:
[php]view plaincopyprint?
1.(define (incr x) (+ x 1))
1.(define (even a) (* a 2))
2.;Value: even
3.(define (odd a) (+ (even a) 1))
4.;Value: odd
5.(define (inter a) (+ (even a) (odd a)))
6.;Value: inter
7 incr
3.(incr 1)
4.;Value: 2
我们在上述代码中定义了一个函数incr,它带有一个参数,并且返回参数+1的值。
这里与变量定义的不同之处在于,定义过程时,我们用一个括号表达式。然后,你可以定义多个形参。
最后,在右边,再用一个括号表达式来描述这个过程针对参数做何种操作。
[php]view plaincopyprint?
1.(define (square x) (* x x))
2.;Value square
3.(define (sum x y) (+ x y))
4.;Value sum
5.(sum (square 10) (square 100))
8.;Value 13
9.(inter 4)
10.;Value: 17
我们定义了一个函数even,它将参数值乘以2;定义了一个odd,它将参数值乘以2之后又加1。
然后inter是将参数经过even和odd处理后再进行相加。
分享到:
上一篇:最美丽的编程语言Scheme——基本表达式
下一篇:最美丽的编程语言Scheme——条件表达式和谓词
6.;Value: 10100
在上述代码例子中,我们首先定义了一个函数square,它接受一个参数,并且返回该参数的平方。
第二个函数定义了一个求和函数sum,这个函数带有两个参数,最后返回参数的和。
最后计算的是(10 * 10) + (100 * 100)的值。
最后再举个例子:
[php]view plaincopyprint?
最美丽的编程语言Scheme——复合过程
Scheme的标识符除了下划线以外,还可以包含“减号”。
我们在上一讲谈到了如何用define来定义变量,这一讲我们将介绍如何用define来定义过程。
用define定义过程也很简单。我们可以先举个简单的例子:
[php]view plaincopyprint?
1.(define (incr x) (+ x 1))
1.(define (even a) (* a 2))
2.;Value: even
3.(define (odd a) (+ (even a) 1))
4.;Value: odd
5.(define (inter a) (+ (even a) (odd a)))
6.;Value: inter
7 incr
3.(incr 1)
4.;Value: 2
我们在上述代码中定义了一个函数incr,它带有一个参数,并且返回参数+1的值。
这里与变量定义的不同之处在于,定义过程时,我们用一个括号表达式。然后,你可以定义多个形参。
最后,在右边,再用一个括号表达式来描述这个过程针对参数做何种操作。