最近 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)) <--