如何使用 define-syntax 在 Scheme 中编写 let 实现

How to write the let implementation in Scheme using define-syntax

我想我在概念上已经大致了解了这里,但语法显然是错误的

(define-syntax mylet
  (syntax-rules ( )
    ((mylet definitions evaluation)
     ((lambda (map car definitions) evaluations) (map cdar definitions)))))

这比 Common Lisp 直观得多。真的。我们可以为此使用省略号。

(define-syntax mylet
  (syntax-rules ( )
    ((mylet ((name val) ...) body ...)
     ((lambda (name ...) body ...) val ...))))