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

Reply via email to