与C/C++/Java类似,在Scheme中的过程定义也支持不定参数。在过程的形参列表中,固定参数与不定参数之间以 “.” 号分隔,“.”前面的形参与实参一一对应,“.”后面的所有实参都会传递给后面的不定参数,以list的形式存储,可以通过for-each来顺序访问其各个元素。
简单代码如下:
(define (myprint string . param)
(display string)
(newline)
(for-each (lambda (x) (display x) (newline)) param)
)
(myprint "begin print" 2 3 4 5)