<div dir="ltr">Given that racket has multiple return values, what sort of issues would arise if functions were allowed to return no values at all instead of opting to return the single value void when they have nothing to return? Is it purely a backwards compatibility thing, or are there more fundamental problems with that?</div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jan 5, 2015 at 4:46 PM, Hendrik Boom <span dir="ltr"><<a href="mailto:hendrik@topoi.pooq.com" target="_blank">hendrik@topoi.pooq.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Mon, Jan 05, 2015 at 05:58:31PM -0500, Sean Kanaley wrote:<br>
> I see "void" as a tangible value specifying no information, whereas<br>
> "undefined" is literally no information. So void is more like an empty<br>
> universe and undefined is no universe at all.<br>
<br>
</span>Algol 68 had a void value, called 'empty' in the defining report, but<br>
it didn't need a name in the language itself, because there were too<br>
many easy ways of geerating it.<br>
<br>
I always considered void to be a type with exactly one value, which<br>
would need log2(1) bits to reprresent it, i.e., zero.<br>
<br>
The report also left a number of things undefined.  An early draft of<br>
the report went on to specify 'undefined' as meaning anything from a<br>
reasonable continuation of the computation to 'indescribable chaos'.<br>
<span class="HOEnZb"><font color="#888888"><br>
-- hendrik<br>
</font></span><div class="HOEnZb"><div class="h5">____________________<br>
  Racket Users list:<br>
  <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
</div></div></blockquote></div><br></div>