reorder functions following the guide by r7rs.

This commit is contained in:
Yuichi Nishiwaki 2014-08-05 02:20:05 +09:00
parent a022941c98
commit f44c5189f0
1 changed files with 23 additions and 17 deletions

View File

@ -655,6 +655,29 @@
(export syntax-rules)
;; 4.2.6. Dynamic bindings
(import (picrin parameter))
(define-syntax parameterize
(ir-macro-transformer
(lambda (form inject compare)
(let ((formal (car (cdr form)))
(body (cdr (cdr form))))
(let ((vars (map car formal))
(vals (map cadr formal)))
`(begin
,@(map (lambda (var val) `(parameter-push! ,var ,val)) vars vals)
(let ((result (begin ,@body)))
,@(map (lambda (var) `(parameter-pop! ,var)) vars)
result)))))))
(export parameterize make-parameter)
;; 4.2.7. Exception handling
(define-syntax guard-aux
(syntax-rules (else =>)
((guard-aux reraise (else result1 result2 ...))
@ -715,23 +738,6 @@
(export guard)
(import (picrin parameter))
(define-syntax parameterize
(ir-macro-transformer
(lambda (form inject compare)
(let ((formal (car (cdr form)))
(body (cdr (cdr form))))
(let ((vars (map car formal))
(vals (map cadr formal)))
`(begin
,@(map (lambda (var val) `(parameter-push! ,var ,val)) vars vals)
(let ((result (begin ,@body)))
,@(map (lambda (var) `(parameter-pop! ,var)) vars)
result)))))))
(export parameterize make-parameter)
;; 5.5 Recored-type definitions
(import (picrin record))