summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorNickPapanastasiou <nickpap9411@gmail.com>2015-06-07 22:30:16 -0400
committerNickPapanastasiou <nickpap9411@gmail.com>2015-06-07 22:30:16 -0400
commit6529748da383c52c6cd1487b86b051b15047d48e (patch)
tree26e8caf9700d1e63228a8d44b83f7d0c676dceb8
parentcdd139136c2dbdaa5464ef6b72dcd7efc92ce805 (diff)
Prompt addition of D
-rw-r--r--.d.html.markdown.swpbin0 -> 12288 bytes
-rw-r--r--d.html.markdown61
2 files changed, 61 insertions, 0 deletions
diff --git a/.d.html.markdown.swp b/.d.html.markdown.swp
new file mode 100644
index 00000000..f310c87d
--- /dev/null
+++ b/.d.html.markdown.swp
Binary files differ
diff --git a/d.html.markdown b/d.html.markdown
new file mode 100644
index 00000000..9f322423
--- /dev/null
+++ b/d.html.markdown
@@ -0,0 +1,61 @@
+---
+language: d
+filename: learnd.d
+contributors:
+ - ["Nick Papanastasiou", "www.nickpapanastasiou.github.io"]
+lang: en
+---
+
+If you're like me and spend way to much time on the internet, odds are you've heard
+about [D](http://dlang.org/). The D programming language is a modern, general-purpose,
+multi-paradigm language with fantastic support for OOP, functional programming, metaprogramming,
+and easy concurrency and parallelism, and runs the gamut from low-level features such as
+memory management, inline assembly, and pointer arithmetic, to high-level constructs
+such as higher-order functions and generic structures and functions via templates, all with
+a pleasant syntax, and blazing fast performance!
+
+D is actively developed by Walter Bright and Andrei Alexandrescu, two super smart, really cool
+dudes. With all that out of the way, let's look at some examples!
+
+'''d
+// You know what's coming...
+import std.stdio;
+
+// args is optional
+void main(string[] args) {
+ writeln("Hello, World!");
+}
+
+// Conditionals and loops work as expected.
+import std.stdio;
+
+void main() {
+ for(int i = 0; i < 5; i++) {
+ writeln(i);
+ }
+
+ auto n = 1; // use auto for type inferred variables
+
+ while(n < 10_000) {
+ n += n;
+ }
+
+ do {
+ n -= (n / 2);
+ } while(n > 0);
+
+ // For and while are nice, but in D-land we prefer foreach
+ foreach(i; 1..int.max) { // The .. creates a continuous range
+ if(n % 2 == 0)
+ writeln(i);
+ }
+
+ foreach_reverse(i; short.max) {
+ if(n % 2 == 1)
+ writeln(i);
+ else
+ writeln("No!");
+ }
+}
+
+'''