|
Archives
D Programming
D
D.gnu
digitalmars.D
digitalmars.D.bugs
digitalmars.D.dtl
digitalmars.D.dwt
digitalmars.D.announce
digitalmars.D.learn
digitalmars.D.debugger
C/C++ Programming
c++
c++.announce
c++.atl
c++.beta
c++.chat
c++.command-line
c++.dos
c++.dos.16-bits
c++.dos.32-bits
c++.idde
c++.mfc
c++.rtl
c++.stl
c++.stl.hp
c++.stl.port
c++.stl.sgi
c++.stlsoft
c++.windows
c++.windows.16-bits
c++.windows.32-bits
c++.wxwindows
digitalmars.empire
digitalmars.DMDScript
electronics
|
digitalmars.D - 2/3 dimensional arrays + comparison page truncated
↑ ↓ ← → Daniel White <twinbee41 skytopia.com> writes:
A few things. Firstly, what's happened to the main comparison page:
http://www.digitalmars.com/d/comparison.html
It's only showing stats for D.
Second thing. How does D allocate for a 2D (or even 3D) array. I tried to look
everywhere on the D site for this, and nothing came up. I'm just curious to how
it compares with the long-winded C/C++ way of using malloc to create arrays.
Lastly, is there a place which shows all of the D commands with a short
description? What would be great too is if they were all sorted by how often
each command is used.
↑ ↓ ← → Chris Nicholson-Sauls <ibisbasenji gmail.com> writes:
Daniel White wrote:
A few things. Firstly, what's happened to the main comparison page:
http://www.digitalmars.com/d/comparison.html
It's only showing stats for D.
Hm. Dunno.
Second thing. How does D allocate for a 2D (or even 3D) array. I tried to look
everywhere on the D site for this, and nothing came up. I'm just curious to how
it compares with the long-winded C/C++ way of using malloc to create arrays.
Well... it sorta depends. For static/fixed-length arrays:
int[5][10] foo;
x = foo[2][3];
Its the same as this:
int[50] foo;
x = foo[(2 * 10) + 3];
At least in terms of memory layout. The difference is in how it
interacts with slices, typeinfo, and the meaning of the .length property.
Dynamic/variable-length arrays, on the other hand, are structures of a
length and pointer to heap memory. So its best to say there /are no/
multi-dimensional dynamic arrays -- but there /are/ arrays whose element
type is itself an array. A subtle difference.
Lastly, is there a place which shows all of the D commands with a short
description? What would be great too is if they were all sorted by how often
each command is used.
Someone was maintaining a D keyword glossary at one time, and might
still be, but I be darned if I can remember a link to it. -_-
Hopefully someone else has it bookmarked.
-- Chris Nicholson-Sauls
↑ ↓ ← → Kirk McDonald <kirklin.mcdonald gmail.com> writes:
Chris Nicholson-Sauls wrote:
Someone was maintaining a D keyword glossary at one time, and might
still be, but I be darned if I can remember a link to it. -_- Hopefully
someone else has it bookmarked.
That would be me, and I still am. :-)
As Deewiant mentioned, it's on Wiki4D, but that site is down. The Google
cache is slightly out of date (it is missing __traits), but still
serviceable.
--
Kirk McDonald
http://kirkmcdonald.blogspot.com
Pyd: Connecting D and Python
http://pyd.dsource.org
↑ ↓ ← → Chris Nicholson-Sauls <ibisbasenji gmail.com> writes:
Kirk McDonald wrote:
Chris Nicholson-Sauls wrote:
Someone was maintaining a D keyword glossary at one time, and might
still be, but I be darned if I can remember a link to it. -_-
Hopefully someone else has it bookmarked.
That would be me, and I still am. :-)
As Deewiant mentioned, it's on Wiki4D, but that site is down. The Google
cache is slightly out of date (it is missing __traits), but still
serviceable.
And I'm off to bookmark the link anyhow, so I /will/ have it next time
it comes up. :) Thanks for doing that, by the way, even if I haven't
used it often.
-- Chris Nicholson-Sauls
↑ ↓ ← → Chad J <gamerChad _spamIsBad_gmail.com> writes:
Kirk McDonald wrote:
Chris Nicholson-Sauls wrote:
Someone was maintaining a D keyword glossary at one time, and might
still be, but I be darned if I can remember a link to it. -_-
Hopefully someone else has it bookmarked.
That would be me, and I still am. :-)
As Deewiant mentioned, it's on Wiki4D, but that site is down. The Google
cache is slightly out of date (it is missing __traits), but still
serviceable.
I did not know that existed. That actually sounds very useful,
especially for showing newbies how to use D.
I learned most of that by cross-referencing the NG with the digital mars
site and with simple compiler tests. But that's the slow way ;)
Thanks for making such a glossary.
↑ ↓ ← → Deewiant <deewiant.doesnotlike.spam gmail.com> writes:
Daniel White wrote:
A few things. Firstly, what's happened to the main comparison page:
http://www.digitalmars.com/d/comparison.html
It's only showing stats for D.
It got tonnes of complaints by non-D users about how their languages were being
misrepresented. In the end, it was decided to take them out completely.
Lastly, is there a place which shows all of the D commands with a short
description? What would be great too is if they were all sorted by how often
each command is used.
http://www.prowiki.org/wiki4d/wiki.cgi?LanguageSpecification/KeywordIndex
prowiki.org is down now, though, so you can't see it. Google has a cache:
http://www.google.com/search?q=cache:QgZctJ2jkQUJ:http://www.prowiki.org/wiki4d/wiki.cgi%3FLanguageSpecification/KeywordIndex
--
Remove ".doesnotlike.spam" from the mail address.
↑ ↓ ← → Henrik <zodiachus gmail.com> writes:
Deewiant wrote:
Daniel White wrote:
A few things. Firstly, what's happened to the main comparison page:
http://www.digitalmars.com/d/comparison.html
It's only showing stats for D.
It got tonnes of complaints by non-D users about how their languages were being
misrepresented. In the end, it was decided to take them out completely.
attention). People would complain that "their" language indeed do have
(insert feature here) and then show a two-page example on how to do this
via the language's standard library. Usually a D user would then point
out somewhat smugly that the comparison page states that only language
features are compared - standard libraries are not included in the
comparison. Although this may be true, the discussion would usually
degenerate from there into some form of flame war with hurt feelings and
bruised egos.
Programmers can be very dogmatic like that sometimes. Just as other
people we tend to mix up what we do with who we are. I think it was
decided that although the comparison page was technically correct, it
had to be "truncated" a bit in the interests of public relations.
↑ ↓ ← → "Digital Mars" <Dave_member pathlink.com> writes:
"Daniel White" <twinbee41 skytopia.com> wrote in message
news:f96gar$1vjv$1 digitalmars.com...
Second thing. How does D allocate for a 2D (or even 3D) array. I tried to
look everywhere on the D site for this, and nothing came up. I'm just
curious to how it compares with the long-winded C/C++ way of using malloc
to create arrays.
Try this:
import std.stdio;
void main()
{
int[][] arr2d = new int[][](10,10);
foreach(d; arr2d)
{
foreach(ref x; d)
{
x = 2;
}
}
foreach(d; arr2d)
{
foreach(x; d)
{
writef(x);
}
writefln;
}
int[][][] arr3d = new int[][][](10,10,10);
foreach(d2; arr3d)
{
foreach(d; d2)
{
foreach(ref x; d)
{
x = 3;
}
}
}
foreach(d2; arr3d)
{
foreach(d; d2)
{
foreach(x; d)
{
writef(x);
}
writef(" ");
}
writefln;
}
}
↑ ↓ ← → "Dave" <Dave_member pathlink.com> writes:
"Daniel White" <twinbee41 skytopia.com> wrote in message
news:f96gar$1vjv$1 digitalmars.com...
Second thing. How does D allocate for a 2D (or even 3D) array. I tried to
look everywhere on the D site for this, and nothing came up. I'm just
curious to how it compares with the long-winded C/C++ way of using malloc
to create arrays.
Try this:
import std.stdio;
void main()
{
int[][] arr2d = new int[][](10,10);
foreach(d; arr2d)
{
foreach(ref x; d)
{
x = 2;
}
}
foreach(d; arr2d)
{
foreach(x; d)
{
writef(x);
}
writefln;
}
int[][][] arr3d = new int[][][](10,10,10);
foreach(d2; arr3d)
{
foreach(d; d2)
{
foreach(ref x; d)
{
x = 3;
}
}
}
foreach(d2; arr3d)
{
foreach(d; d2)
{
foreach(x; d)
{
writef(x);
}
writef(" ");
}
writefln;
}
}
|
|