shithub: mc

Download patch

ref: a8fcda1610863621f9df784a7eae8e72820e8d1f
parent: 8f0dfdfa0968d20b6210f28cbb42b8f647dc0770
author: andrewc <andrew_chambers@trimble.com>
date: Tue Dec 22 06:10:38 EST 2015

update readme

--- a/README.md
+++ b/README.md
@@ -1,24 +1,64 @@
-A Toy With Delusions of Usefulness
-----------------------------------
+Myrddin
+-------
 
-    use std
-    const main = {
-            var i
-            for i = 0; i < 100; i++
-                    std.put("You're still reading?!?\n")
-            ;;
-    }
+Myrddin is a systems language that is both powerful and fun to use.
+It aims for C like low level control, a lightweight high quality implementation,
+and features you may find familiar from languages like like rust and ocaml.
 
-Myrddin is a language that I put together for fun, but which has slowly become
-a handly little language, and has attracted a number of contributors. The libraries
-are written from the ground up, with zero external dependencies -- not even libc.
+This combination makes Myrddin suitable for anything ranging from desktop
+applications, to embedded systems and potentially even kernel development.
 
+Examples
+--------
+
+A classic:
+```
+use std
+
+const main = {
+
+	for var i = 0; i < 1000; i++
+		/* pattern match on a tuple */
+		match (i % 3, i % 5)
+		| (0, 0): std.put("fizzbuzz\n")
+		| (0, _): std.put("fizz\n")
+		| (_, 0): std.put("buzz\n")
+		| _:
+		;;
+	;;
+}
+```
+How about regex, destructuring and algebraic data types?
+```
+use regex
+use std
+
+const main = {
+	var re, str
+
+	str = "match against this!"
+	match regex.compile(".*")
+	| `std.Ok r:	re = r
+	| `std.Fail m:	std.fatal("couldn't compile regex: {}\n", m)
+	;;
+	match regex.exec(re, str)
+	| `std.Some _:  std.put("regex matched\n")
+	| `std.None:	std.fatal("regex did not match\n")
+	;;
+	regex.free(re)
+}
+```
+
+More examples and a complete feature list can be found on the website.
+
+Status
+------
+
 ![Solid Engineering](http://eigenstate.org/myrddin/tacoma-narrows.jpg "Solid Engineering")
 
-Introduction
--------------
 
-If you want to read more about what Myrddin is or does, there's a website up.
+Website
+-------
 
 [Myrddin Homepage](http://eigenstate.org/myrddin/)
 
@@ -25,9 +65,7 @@
 Try It Online
 -------------
 
-Since installing a new language is a chore, there is a sandbox with code you can mess
-around with. This is a very restrictive environment, but it's enough to get an idea
-of what the language feels like.
+The online playground is a good place to get started with little setup.
 
 [Online Playground Environment](http://eigenstate.org/myrddin/playground/)
 
@@ -34,8 +72,8 @@
 API Documentation
 -------------
 
-Myrddin ships with a reasonably useful standard library, which covers many common uses. As
-stated before, This library is implemented from scratch.
+Myrddin ships with standard library which covers many common uses. It is becoming
+more useful every day.
 
 [API Reference](http://eigenstate.org/myrddin/doc/)
 
@@ -57,17 +95,4 @@
 - OSX
 - FreeBSD
 - 9front
-
-Major Features
---------------
-
-- Type inference. Types are inferred across the whole program.
-- Algebraic data types.
-- And their friend, pattern matching.
-- Generics and traits
-- A package system.
-- Low level control.
-- (Almost) no runtime library.
-- Entirely self contained.
-- Simple and easy to understand implementation.