digitalmars.D.learn - Array concat quiz
- bearophile <bearophileHUGS lycos.com> Dec 16 2011
- "Adam D. Ruppe" <destructionator gmail.com> Dec 16 2011
- Timon Gehr <timon.gehr gmx.ch> Dec 17 2011
A small quiz. This Python2 code:
m1 = [["A'", "B'"]]
print m1
m2 = m1 + [[]]
print m2
Prints:
[["A'", "B'"]]
[["A'", "B'"], []]
What does this D2 program print?
import std.stdio;
void main() {
string[][] m1 = [["A'", "B'"]];
writeln(m1);
string[][] m2 = m1 ~ [[]];
writeln(m2);
}
Bye,
bearophile
Dec 16 2011
Don't forget that string is an alias for immutable(char)[]. The immutable isn't important here, but the fact that strings are arrays is. char[][][] is the real type here.
Dec 16 2011
On 12/17/2011 02:43 AM, bearophile wrote:A small quiz. This Python2 code: m1 = [["A'", "B'"]] print m1 m2 = m1 + [[]] print m2 Prints: [["A'", "B'"]] [["A'", "B'"], []] What does this D2 program print? import std.stdio; void main() { string[][] m1 = [["A'", "B'"]]; writeln(m1); string[][] m2 = m1 ~ [[]]; writeln(m2); } Bye, bearophile
I do not think that this is very sensible (array-array appends are more natural than array-element appends, so disambiguation should go the other way). Is it documented anywhere or is it just an implementation artefact?
Dec 17 2011









"Adam D. Ruppe" <destructionator gmail.com> 