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.
#lang mzscheme
#lang scheme/base
(provide receive)
;; (receive vars producer . body)
(define-syntax receive
(syntax-rules ()
((receive (var ...) ?producer . ?body)
(let-values ([(var ...) ?producer]) . ?body))
((receive ?vars ?producer . ?body)
(call-with-values (lambda () ?producer) (lambda ?vars . ?body)))))