Pragmatic D Tutorial
====================
This is a pragmatic introduction to the
`D Programming Language `_.
Audience
--------
While the goal is to be generic,
there are a few assumptions about you, the reader.
* You can program already.
This is not a general tutorial to learn programming.
You should know the basics like
variables, if-statements, pointers and functions.
* You can use a command line interface.
This tutorial covers compilation from raw compiler invocations.
Using an IDE would hide this build process.
Since I am using Linux,
examples will assume a bash shell,
which is the default on all major distributions (including BSD and OS X).
Scope
-----
This tutorial does not explore deeply into the syntax and semantics of D
nor does it try to cover every feature.
Since D is a large language,
it does not make sense to learn everything,
before you start using it.
Instead this tries to provide pragmatic information
to enable you to start coding ASAP.
For details,
links are provided for further study.
D is multi-paradigm
and thus suited for procedural, object-oriented,
functional, and generic programming.
However, this tutorial is not a guide on design,
when to use what paradigm,
therefore it does not cover these aspects.
.. seealso::
`Feature List of D `_,
`Language Reference `_
Contents
--------
.. toctree::
:maxdepth: 2
hello
philosophy
others
debugging
testing
documentation
package
optimization
idiomatic
meta
memory
c
multicores
collections
unicode
floating
stdlib
ide
gui
next
fineprint
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`