www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - 2/3 dimensional arrays + comparison page truncated

reply 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.
Aug 05 2007
next sibling parent reply 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
Aug 06 2007
parent reply 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
Aug 06 2007
next sibling parent 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
Aug 06 2007
prev sibling parent 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.
Aug 06 2007
prev sibling next sibling parent reply 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.
Aug 06 2007
parent 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.
Aug 08 2007
prev sibling next sibling parent "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; } }
Aug 07 2007
prev sibling parent "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; } }
Aug 07 2007