rmcguire wrote:
Andrei Alexandrescu <seewebsiteforem...@erdani.org> wrote:
grauzone wrote:
Andrei Alexandrescu wrote:
Pelle Månsson wrote:
Andrei Alexandrescu wrote:
Yigal Chripun wrote:
On 23/10/2009 13:02, bearophile wrote:
Chris Nicholson-Sauls:
I prefer this (Scala):
list = list ++ (0 to 10)
That's quite less readable. Scala sometimes has some unreadable
syntax. Python has taught me how much useful a readable syntax is :-)
Designing languages requires to find a balance between several
different and opposed needs.
Bye,
bearophile
how about this hypothetical syntax:
list ~= [0..10];
I'm not sure what the type of "list" is supposed to be, but this
works today for arrays:
list ~= array(iota(0, 10));
Andrei
What does iota mean?
http://www.digitalmars.com/d/2.0/phobos/std_range.html#iota
This link jumps straight to:
Take!(Sequence!("a.field[0] + n *
a.field[1]",Tuple!(CommonType!(B,E),S))) iota(B, E, S)(B begin, E end, S
step);
Wow, please tell me this is a ddoc malfunction. I mean, that thing left
to iota is supposed to be a type?
(OK, it _is_ a malfunction, but that thing is still supposed to be... a
type?)
Well what was I supposed to do? It was either define another type Iota,
or reuse existing types. I chose to reuse.
Andrei
Hi Andrei,
Could you tell me why:
Take!(Sequence!("a.field[0] + n * a.field[1]",Tuple!(CommonType!(B,E),S)))
Is a type and not a value?
-Rory
Take!(
Sequence!(
"a.field[0] + n * a.field[1]",
Tuple!(
CommonType!(B,E),
S
)
)
)
If you look here:
http://www.dsource.org/projects/phobos/browser/trunk/phobos/std/algorithm.d
and in related files, you'll see that Take is a type with one parameter.
Then Sequence is a type with two parameters. Then Tuple is a type with
any number of parameters, and so is CommonType.
So in spite of it looking complicated, it's just a usual instantiation
of a few parameterized types. (What may confuse a C++ programmer is the
presence of the string - it's just a template argument.)
Andrei