From 64fec1082f6f14033a83e2c70768cd668cb9a616 Mon Sep 17 00:00:00 2001 From: Erik Post Date: Tue, 28 Oct 2014 23:55:26 +0100 Subject: [PATCH] Updated documentation and added an example image. --- README.org | 15 +++++++++------ img/two-stars.png | Bin 0 -> 12957 bytes 2 files changed, 9 insertions(+), 6 deletions(-) create mode 100644 img/two-stars.png diff --git a/README.org b/README.org index 6bd9464..3002e53 100644 --- a/README.org +++ b/README.org @@ -2,15 +2,18 @@ A demonstration of a Turtle interpreter based on the Free monad, with HTML Canvas graphics support. -Example: +[[file:img/two-stars.png]] #+BEGIN_SRC purescript main :: Context2DEff -main = - get2DContext "turtleCanvas" >>= - beginStroke >>= - compileTurtleProg star >>= - endStroke +main = renderTurtleProgOnCanvas "turtleCanvas" $ do + star + penUp + forward 40 + left 100 + penDown + color Red + star star = do right 144 diff --git a/img/two-stars.png b/img/two-stars.png new file mode 100644 index 0000000000000000000000000000000000000000..bf610497ea3dff77dc4567d99b654ece4eb5db0b GIT binary patch literal 12957 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 Thn-aaw2WjV6vQh<^#lG7#boZR literal 0 HcmV?d00001