On Sunday, 23 September 2012 at 21:51:35 UTC, Nick Sabalausky
wrote:

*Logically* speaking, is there really any difference between a
one-element tuple and an ordinary single value? I don't think so, and here's why: What is a tuple, logically speaking? Multiple values being handled as if they were a single value. So what's a one-element tuple? *One* value being handled as if it were one value - which is *is*.

Similarly, a zero-element tuple is logically equivalent to void (or the one value a void can have: the value void, a concept which has been
argued in the past that might be useful for D, particularly in
metaprogramming). (I admit this is a little weaker than my argument
for one-element tuples.)

So perhaps zero- and one-element tuples should be implicitly
convertible back and forth with void and ordinary non-tuple values, respectively (polysemous values?), because that's what they essentially
are.

It's informative to look a bit at the Ocaml language:

  - no distinction between 1-tuple and single value:

     # 1;;
     - : int = 1
     # (1);;
     - : int = 1

- "void" type is called unit and its notation is the empty tuple:

     # ();;
     - : unit = ()

  - for some reason tuples can't be indexed in Ocaml

Reply via email to