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

时间:2017-10-20 18:06:07

标签: scheme r5rs

我认为我在概念上有一般性的想法,但语法是错误的

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

1 个答案:

答案 0 :(得分:2)

这比Common Lisp更直观。真。我们可以使用省略号。

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