fix make-parameter for SRFI-39

svn: r13684
This commit is contained in:
Matthew Flatt 2009-02-17 00:14:11 +00:00
parent c7809e5838
commit ee32e728bc

View File

@ -1,3 +1,18 @@
;; Supported by core PLT:
;; Supported by core PLT, with a slight difference in how a guard is used:
#lang scheme/base
(provide make-parameter parameterize)
(define make-parameter*
(let ([make-parameter
(case-lambda
[(v) (make-parameter v)]
[(v guard) (make-parameter (if (and (procedure? guard)
(procedure-arity-includes? guard 1))
;; apply guard to initial value:
(guard v)
;; let `make-parameter' complain:
v)
guard)])])
make-parameter))
(provide (rename-out [make-parameter* make-parameter])
parameterize)