定义
要多次使用一个特定的圆和矩形图片,给它们命名会更简单。回到定义区域(顶部区域)并添加两个定义,这样定义区域的完整内容就像这样:
#lang slideshow
(define c (circle 10))
(define r (rectangle 10 20 20.))
然后再次单击Run。现在,你可以输入c或r:
> r
image
> (hc-append c r)
image
> (hc-append 20 20. c r c)
image
如您所见,hc-append函数在图片参数之前接受一个可选的数字参数,并且它接受任意数量的图片参数。当提供一个数字时,它指定图片之间要添加的空间量。
我们可以在相互作用区域计算c和r的定义形式,而不是定义区域。但是在实践中,定义区域是您的程序所在的地方—它是您保存的文件—而交互区域是用于临时探索和调试任务的。
让我们给程序添加一个函数定义。函数定义使用define,就像我们的形状定义一样,但是在函数名之前有一个左括号,在匹配的右括号之前有函数参数的名称:
(define (square n)
; A semi-colon starts a line comment.
; The expression below is the function body.
(filled-rectangle n n))
定义的语法反映了函数调用的语法:
> (square 10)
image
与在交互区域计算定义的方式相同,表达式也可以包含在定义区域中。当程序运行时,来自定义区域的表达式结果显示在交互区域中。从现在开始,我们将一起编写示例定义和表达式,您可以将它们放在您喜欢的任何区域。但是,这些示例将相互构建,因此最好至少将定义放在定义区域中。