use let-values for no-rest-argument case, switch to scheme/base

svn: r8988
This commit is contained in:
Eli Barzilay 2008-03-16 15:21:29 +00:00
parent 38ba4f29e8
commit eb30bc7c88

View File

@ -10,11 +10,13 @@
;;; ;;;
;;; oh well, there is no such comment. ;;; oh well, there is no such comment.
#lang mzscheme #lang scheme/base
(provide receive) (provide receive)
;; (receive vars producer . body) ;; (receive vars producer . body)
(define-syntax receive (define-syntax receive
(syntax-rules () (syntax-rules ()
((receive (var ...) ?producer . ?body)
(let-values ([(var ...) ?producer]) . ?body))
((receive ?vars ?producer . ?body) ((receive ?vars ?producer . ?body)
(call-with-values (lambda () ?producer) (lambda ?vars . ?body))))) (call-with-values (lambda () ?producer) (lambda ?vars . ?body)))))