【发布时间】:2016-07-10 17:48:47
【问题描述】:
我最近开始使用 ChickenScheme,现在我想声明一个带有默认参数的函数(如果未指定)。 我在 Racket 网站上找到了这个例子,我知道 Racket 和 ChickenScheme 是不同的,但我认为这些基本的东西是一样的。
(define greet
(lambda (given [surname "Smith"])
(string-append "Hello, " given " " surname)))
这是 ChickenScheme 解释器的错误:
Error: during expansion of (lambda ...) - in `lambda' - lambda-list expected: (lambda (given (surname "Smith")) (string-append "Hello, " given " " surname))
Call history:
<syntax> (define greet (lambda (given (surname "Smith")) (string-append "Hello, " given " " surname)))
<syntax> (##core#set! greet (lambda (given (surname "Smith")) (string-append "Hello, " given " " surname)))
<syntax> (lambda (given (surname "Smith")) (string-append "Hello, " given " " surname)) <--
【问题讨论】:
标签: function lambda arguments scheme chicken-scheme