On Feb 20, 2007, at 11:05 PM, John Cowan wrote:
Apparently, Chicken requires
parameter procedures to return only one value.
So does Chez. In the following, using the procedure "values" as a guard
is a shorthand for (lambda (x) x) since returning multiple values to a
single-value context raises an error in Chez.
(define make-parameter
(case-lambda
[(init guard)
(let ([v (guard init)])
(case-lambda
[() v]
[(u) (set! v (guard u))]))]
[(init) (make-parameter init values)]))
Aziz,,,_______________________________________________
r6rs-discuss mailing list
[email protected]
http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss