A different tuple syntax
bearophile
bearophileHUGS at lycos.com
Thu May 30 10:18:46 PDT 2013
watcher:
> I hope i did not sound mean. I just think that a language
> should not be that terse. It must be human readable with little
> room to make typing or other mistakes. I rather type more if
> necessary.
I agree that too much terseness is bad, making code less easy to
read. On the other hand too much long to type syntax is bad, for
different reasons.
So you need a compromises, between lot of tiny operators as in J,
K, Ursala or Perl6 languages, that are hard to remember,
understand and look in the documentation, and very long names as
std.functional.binaryReverseArgs of Phobos that are too much long.
Such intermediate point between too much long and too much short
syntax is not a constant, it must be adapted according to how
much common an operation is, in the language, across languages,
or even more generally, in mathematics, and natural languages.
The more common something is, the shorter it's better for it to
be:
http://en.wikipedia.org/wiki/Zipf%27s_law
Tuples are used very often, they are not meant to be uncommon
parts of the language. In range-heavy code you are probably going
to use a tuple every 1-5 lines of code. And even more normal D
code may use a tuple every 10-30 lines of code. So using a
succinct syntax is good.
Python uses just commas (with a bit of help of ( ) in some cases,
like for the empty tuple), but to not break a certain
compatibility with C the D language can't do the same. So we are
trying to look for something that works, doesn't clash with
currently used syntaxes, including library solutions like
Tuple!() and tuple(), and is short enough.
Tuple syntax can be short because it's going to be used often
enough, and it has to be short because where you use tuples you
don't want too much boilerplate, because functional-style code
becomes rather worse if your syntax is not terse. That's why most
functional languages, or languages with some support for
functional programming (F#, Haskell, Python, Scala, and so on)
have a nice short syntax for tuples.
Bye,
bearophile
More information about the Digitalmars-d
mailing list