07-Nov-2013 18:27, Daniel Davidson пишет:
On Thursday, 7 November 2013 at 13:12:56 UTC, bearophile wrote:
Marco Leise:

I made it idiomatic, D is on place 1 now by a big margin. See the
'ldc2' entry:
http://togototo.wordpress.com/2013/08/23/benchmarks-round-two-parallel-go-rust-d-scala-and-nimrod/


Very nice. I have made a more idiomatic version (in D global constants
don't need to be IN_UPPERCASE), I have added few missing immutable
annotations, and given the benchmark also counts line numbers, I have
made the code a little more compact (particularly the struct
definitions, but I have moves the then branch of some if on a new
line, increasing the line count to make the code a little more
readable, so it's not a unnaturally compact D code):

http://dpaste.dzfl.pl/d37ba995

Bye,
bearophile


Regarding what is idiomatic D, isn't `immutable x = rnd.next %
levelSize;` pedantic.
Why not just go with `const x = rnd.next % levelSize;`

IMHO yes, it's pedantic.

Any time the type is a fundamental type with no aliasing there is no
sharing so the differentiation of immutable vs const is unnecessary.
Might as well go with const. immutable says I or no-one else will change
the value. But since no-one else can change the value it seems overkill,
no?

immutable is useful for non-value types. Say strings, then wherever function/module it's passed later on can safely avoid copying it since it's immutable.


--
Dmitry Olshansky

Reply via email to