Advertising

It's mostly targeted at beginners as I explain many basic D
features, but maybe it's helpful for beginners looking into D.

Very nice read!!! Thank you!
One "typo?" Chapter 8)

same format function that would normally be called at
compile-time

s/compile/run/
It would be good to say a little more about the '!' ct-parameter

At fist when reading D code coming from ruby (after,
php,...C++,C, Pascal...),
I thought, that the ! is like in Ruby just an way to distinguish
between a function modifying the contend or not (compare gsub to
gsub!) it took sometime before this important bit came clear to
me.
So just something, like functions in D may have two parameter
brackets:

One for compile-time and one for run-time parameters:
fun!(ctParam)(rtParam) ... short fun!(cParam)() ... fun!ctparam
Other point:

Showing some more alternative D solutions for the same problem,
might be a little contest in this thread, just post your shorter
and better solutions :-)