On Wed, 2009-05-27 at 12:38 +0300, Abdulaziz Ghuloum wrote: > On May 27, 2009, at 12:04 PM, Derick Eddington wrote: > > > I love multiple return values. Especially proper zero return > > values ... > > I had the intention for a long time to make things like set!, vector- > set!, display, et cetera return no values instead of returning this > #<void> thing. I was held back because I didn't want to break > anybody's code without giving proper support regarding where these > errors are happening. Now that there is kind of a debugger and some > information about where/who is calling/returning what, I might put it > back on the table (but not any time soon since it's not a real > priority).
I think code which expects "unspecified return values" to return some "unspecified" value is already broken. A procedure which takes zero arguments only takes zero arguments and will error if given more. Having procedures which return zero values return some "zero return values" value (which some Scheme systems do) is broken IMO. I really like the idea that everything which returns "unspecified return values" will return zero values in Ikarus, because I don't want continuations to continue with a value which shouldn't exist. -- : Derick ----------------------------------------------------------------
