This is the mail archive of the
kawa@sourceware.org
mailing list for the Kawa project.
Multiple Values in Kawa
- From: Nigel Dolby <nigel_dolby at acm dot org>
- To: 'Kawa List' <kawa at sources dot redhat dot com>
- Date: Mon, 16 Jan 2006 10:04:41 -0600
- Subject: Multiple Values in Kawa
Per, Jens,
Thanks for the e-mails, the references, and the background information.
It looks from Per's comments as if the multiple values question may be a
timely one, so I would like to pursue the subject one step further.
Given that Kawa is pretty effective for prototyping and that the Common
Lisp handling of multiple values provides a significant increment of
prototyping capability, it seems to me that it would be worth trying to
make the Common Lisp functionality available in Kawa Scheme. This
doesn't necessarily mean that it should be a default. The crucial
consideration is that, if I modify an existing function to return
multiple values when it previously returned a single one, all existing
calls on the modified function should continue to work as before without
any code changes (thus, let-binding to capture the first value is not a
preferred solution). Without any knowledge of the implementation, it
seems that it might be possible to add a form similar to "values",
perhaps named "optional-values" or "ignorable-values", that would
explicitly call for the Common Lisp functionality in the code of the
function that is returning the multiple values, which is already
necessarily undergoing change in the prototyping scenario. This would
allow people who prefer to use strict-checking functionality to use
"values", and those who prefer flexibility to use the new form. If this
is feasible, it seems that it might satisfy all the requirements and do
so without foreclosing sequence functionality in XQuery.
Nigel Dolby.