1
我正在写一个函数注释,它使用match-lambda通常用递归调用来注释。这里是模式和匹配之一:Scheme:match-lambda语法错误
(`(,<param> . ,<params> (lambda (,<args>) ,<stmt> . ,<stmts>))
`(CLOSURE ENV ,(append (append `(,<param>) `(,<params>))`(,<args>)) (lambda (ENV) ,(map annotate `(,<stmt> . ,<stmts>)))))
我收到一个投诉,第一次使用“。”是非法的 - 在“param”和“params”之间 - 但我不明白为什么。这种模式和匹配没有得到任何投诉,并且看起来与第一个“。”相似。:
(`(λ (,<param1> . ,<params>) ,<stmt> . ,<stmts>)
`(CLOSURE ENV ,(map annotate `(,<param1> . ,<params>)) (λ (ENV) ,(map annotate `(,<stmt> . ,<stmts>)))))
任何建议表示赞赏。
谢谢。