diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2015-05-26 01:36:13 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2015-05-26 01:36:18 -0700 |
commit | af571dd844d9067b029b9dab15c28b3f1cb77b7b (patch) | |
tree | 5750471be9c18f07b78451816428cc2d544985cf | |
parent | f6b443065beea62ba9ee1c993560f5dbb7da9273 (diff) | |
download | mu-af571dd844d9067b029b9dab15c28b3f1cb77b7b.tar.gz |
1462 - blurbs for example programs
-rw-r--r-- | index.html | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/index.html b/index.html index 9a1fa2b6..a02ebadf 100644 --- a/index.html +++ b/index.html @@ -13,12 +13,39 @@ Mu's code is structured in an unconventional manner, requiring editors to be specially configured to colorize it in a sane manner. Here's how it currently looks in my <a href='https://github.com/akkartik/mu/blob/master/mu.vim'>custom setup</a>. +<p>Whetting your appetite: some example programs. + +<ul> +<li><a href='html/x.mu.html'>x.mu</a>: a simple program to add two numbers +together. Shows that at bottom mu is a simple VM bytecode designed to convert +directly to machine code. +<li><a href='html/factorial.mu.html'>factorial.mu</a>: everyone's favorite +example, showing how mu supports conditionals and loops without any special +syntax, using the special labels '{' and '}'. +<li><a href='html/tangle.mu.html'>tangle.mu</a>: another (contrived) version +of factorial showing mu's ability to 'tangle' code from multiple places into a +single function or 'recipe'. +<li><a href='html/counters.mu.html'>counters.mu</a>: lexical scope +<li><a href='html/callcc.mu.html'>callcc.mu</a>: first-class continuations. Mu +also supports first-class functions and delimited continuations. +<li>simple examples showing off support for concurrency: <a href='html/fork.mu.html'>fork.mu</a>, +<a href='html/channel.mu.html'>channel.mu</a> +<li>simple examples showing off hardware control: <a href='html/display.mu.html'>display.mu</a>, +<a href='html/keyboard.mu.html'>keyboard.mu</a>. +<li><a href='html/screen.mu.html'>screen.mu</a>: example program showing +print primitives that inject a screen <em>dependency</em> which can be faked +for testing. +<li><a href='html/chessboard.mu.html'>chessboard.mu</a>: putting it all +together, the big kahuna: a complete console program along with thorough tests +of its behavior including both screen and keyboard handling. +</ul> + <p><b>Part I</b>: basic infrastructure <p/><a href='html/000organization.cc.html'>000organization.cc</a>: the basic skeleton program. Compiles and runs but doesn't do much. Later <em>layers</em> hook into this skeleton to add functionality. Mu's guarantee: you can <a href='http://youtube.com/watch?v=c8N72t7aScY'>load features</a> up until any layer, and it will compile and pass all tests until -that point. +that point. <a href='http://akkartik.name/post/wart-layers'>More details →</a> <br/><a href='html/001help.cc.html'>001help.cc</a>: just a simple test layer to show how to hook into the skeleton. Also summarizes how to invoke mu, behaviors that later layers will be providing. |